JavaScript onclick 中的“this”是什么?

IT技术 javascript
2021-02-01 01:38:59
<a onclick="javascript:func(this)" >here</a>

this脚本什么意思?

6个回答

在您询问的情况下,this代表 HTML DOM 元素。

所以这将是<a>被点击元素。

有人可以链接到规范吗?天真地查看w3.org/TR/DOM-Level-3-Events是徒劳的。
2021-03-19 01:38:59

它指的是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”的示例中,将引用窗口对象而不是<a>元素。

是的......你并没有真正回答这个问题:-/没什么私人的!
2021-03-17 01:38:59
当时没有足够的代表?吐出他的酒
2021-03-20 01:38:59
有趣的否决票,虽然我认为严格来说这个答案只提供围绕问题的建议,而不是直接回答问题。
2021-03-23 01:38:59
@Dave:够公平的。到我写这篇文章的时候,主要问题已经得到了回答。我的回答可能应该是评论,但我怀疑当时我可能没有足够的代表来添加评论。活到老,学到老。
2021-04-10 01:38:59

在 JavaScript 中this是指包含动作的元素。例如,如果您有一个名为 的函数hide()

function hide(element){
   element.style.display = 'none';
}

调用hidewiththis将隐藏元素。它只返回被点击的元素,即使它与 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