<a onclick="javascript:func(this)" >here</a>
Что означает this
в script?
<a onclick="javascript:func(this)" >here</a>
Что означает this
в script?
В случае, о котором вы спрашиваете, 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:". Javascript: псевдопротокол используется в URL-адресе, например:
<a href="javascript:func(this)">here</a>
Вы должны использовать форму onclick="func(this)"
, предпочитая это. Также обратите внимание, что в моем примере выше, используя javascript: псевдо-протокол "this" будет ссылаться на объект window, а не на элемент <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>
this
ссылается на объект, к которому принадлежит метод onclick
. Таким образом, внутри func
this
будет DOM node элемента a
, а this.innerText
будет here
.
При вызове функции слово "this" является ссылкой на объект, который вызывает функцию.
В вашем примере это ссылка на элемент привязки. На другом конце вызов функции затем получает доступ к переменным-членам элемента через переданный параметр.
Здесь (это) - объект, который содержит все свойства/свойства элемента dom. вы можете увидеть
console.log(this);
Это отобразит все свойства атрибутов элемента dom с иерархией. Вы можете манипулировать элементом dom этим.
Также описывайте ссылку ниже: -
ключевое слово this в событие 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>