触发事件的元素的id(this)$(this)意外行为

时间:2016-07-02 05:28:28

标签: jquery

我有这段代码:

<button id="hit">hit</button>

$('button').click(function(){
    console.log(this.id);
    $(this).append("ok");
});

我假设$(this)是基于Getting the ID of the element that fired an event引用$(button)所必需的,this jQuery tags input library也适用于以下符合预期的行(添加&#39} ;确定&#39;到按钮文本)。我无法弄清楚为什么console.log(this.id);有效,而以下情况则不然:

console.log( $(this.id) );

$('button').click(function(e){
    console.log(e.target.id);
});

据我所知,这与应该发生的情况相反:$(this)似乎应该引用jQuery对象 - 我不知道如何有效的例子有一个(this)和一个引用同一个对象的$(this)。我在哪里理解错误?

2 个答案:

答案 0 :(得分:1)

我想这会更适合你的情况   的console.log($(本).attr( “ID”));

答案 1 :(得分:1)

在click事件处理程序this内部引用dom对象,将其转换为jQuery对象,并使用$ $(this)包裹它。

并且$(this.id)不是正确的选择器,它会搜索标记元素hit。由于它是id元素,因此应以#开头。

$('#' + this.id)