Что это такое в JavaScript onclick? - PullRequest
101 голосов
/ 29 мая 2009
<a onclick="javascript:func(this)" >here</a>

Что означает this в сценарии?

Ответы [ 8 ]

88 голосов
/ 29 мая 2009

В случае, если вы спрашиваете, this представляет элемент HTML DOM.

Так что это будет элемент <a>, по которому щелкнули.

31 голосов
/ 29 мая 2009

Относится к элементу в 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 .)

20 голосов
/ 29 мая 2009

Значением атрибутов обработчика событий, таких как onclick, должен быть просто JavaScript без префикса «javascript:». В URL-адресе используется псевдопротокол javascript: например,

<a href="javascript:func(this)">here</a>

Вы должны использовать форму onclick="func(this)" в предпочтении к этому, хотя. Также обратите внимание, что в моем примере выше с использованием псевдопротокола javascript: this будет ссылаться на объект окна, а не на элемент <a>.

5 голосов
/ 08 января 2015

В 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>
4 голосов
/ 25 июля 2016

Здесь (это) объект, который содержит все особенности / свойства элемента dom. вы можете увидеть по

console.log(this);

Это отобразит все атрибуты свойств элемента dom с иерархией. Вы можете управлять элементом dom этим.

Также опишите по ссылке ниже: -

http://www.quirksmode.org/js/this.html

2 голосов
/ 19 декабря 2017

ключевое слово это в 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>
2 голосов
/ 29 мая 2009

При вызове функции слово «this» является ссылкой на объект, вызвавший функцию.

В вашем примере это ссылка на элемент привязки. С другой стороны, вызов функции затем обращается к переменным-членам элемента через переданный параметр.

2 голосов
/ 29 мая 2009

this ссылается на объект, которому принадлежит метод onclick. Таким образом, внутри func this будет DOM-узел элемента a, а this.innerText будет here.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...