簡體   English   中英

JavaScript onclick 中的“this”是什么?

[英]What's "this" in JavaScript onclick?

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

什么this意味着在腳本?

在您詢問的情況下, this表示 HTML DOM 元素。

所以它會是被點擊的<a>元素。

它指的是DOMonclick屬性所屬的元素:

<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';
}

this調用hide將隱藏元素。 它只返回被點擊的元素,即使它與 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) 是一個包含 dom 元素的所有特征/屬性的對象。 你可以看到

console.log(this);

這將顯示具有層次結構的 dom 元素的所有屬性。 您可以通過此操作 dom 元素。

另請在以下鏈接中進行描述:-

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

in event事件中使用關鍵字

 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>

調用函數時,單詞“this”是對調用函數的對象的引用。

在您的示例中,它是對錨元素的引用。 在另一端,函數調用然后通過傳遞的參數訪問元素的成員變量。

this指的是onclick方法所屬的對象。 所以在func內部, this將是a元素的 DOM 節點, this.innerText將在here

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM