<a onclick="javascript:func(this)" >here</a>
Що thisозначає сценарій?
<a onclick="func(this)" >here</a>
<a onclick="javascript:func(this)" >here</a>
Що thisозначає сценарій?
<a onclick="func(this)" >here</a>
Відповіді:
У випадку, про який ви запитуєте, thisпредставляє елемент HTML DOM.
Так це був би <a>елемент, на який натискали.
Він посилається на елемент у DOM, якому onclickналежить атрибут:
<script type="text/javascript"
src="http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js">
</script>
<script type="text/javascript">
function func(e) {
$(e).text('there');
}
</script>
<a onclick="func(this)">here</a>
(У цьому прикладі використовується jQuery .)
Значення атрибутів обробника подій, таких як onclick, має бути просто JavaScript, без будь-якого префікса "javascript:". URL-адреса використовується JavaScript: псевдопротокол, наприклад:
<a href="javascript:func(this)">here</a>
Вам слід скористатися onclick="func(this)"формою, яка надає перевагу цій формі. Також зауважте, що в моєму прикладі вище, використовуючи протокол javascript: pseudo-протокол "цей" буде стосуватися об'єкта вікна, а не <a>елемента.
У JavaScript thisпосилається на елемент, що містить дію. Наприклад, якщо у вас функція називається hide():
function hide(element){
element.style.display = 'none';
}
Виклик hideз thisприховуватиме елемент. Він повертає лише натиснутий елемент, навіть якщо він подібний до інших елементів у DOM.
Наприклад, можливо, thisнатиснувши номер у HTML нижче, ви заховатиме лише натиснуту точку кулі.
<ul>
<li class="bullet" onclick="hide(this);">1</li>
<li class="bullet" onclick="hide(this);">2</li>
<li class="bullet" onclick="hide(this);">3</li>
<li class="bullet" onclick="hide(this);">4</li>
</ul>
Тут (це) - об’єкт, який містить усі особливості / властивості елемента dom. ви можете бачити
console.log(this);
Це покаже всі властивості атрибутів елемента dom з ієрархією. Ви можете керувати цим елементом dom.
Також опишіть на посилання нижче: -
ключове слово це у події addEventListener
function getValue(o) {
alert(o.innerHTML);
}
function hide(current) {
current.setAttribute("style", "display: none");
}
var bullet = document.querySelectorAll(".bullet");
for (var x in bullet) {
bullet[x].onclick = function() {
hide(this);
};
};
/* Using dynamic DOM Event */
document.querySelector("#li").addEventListener("click", function() {
getValue(this); /* this = document.querySelector("#li") Object */
});
li {
cursor: pointer;
}
<ul>
<li onclick="getValue(this);">A</li>
<li id="li" >B</li>
<hr />
<li class="bullet" >1</li>
<li class="bullet" >2</li>
<li class="bullet" >3</li>
<li class="bullet" >4</li>
</ul>