[英]What's "this" in JavaScript onclick?
<a onclick="javascript:func(this)" >here</a>
什么this
意味着在腳本?
在您詢問的情況下, this
表示 HTML DOM 元素。
所以它會是被點擊的<a>
元素。
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 元素。
另請在以下鏈接中進行描述:-
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.