$(this)和$("#id")之间有什么区别?

3Ne*_*Nex 2 each jquery this selector

在一个$.each()循环中,有一个特定的案例,我不明白为什么失败.

当我做一个if语句时会说这样的话(我的具体例子,只有没有真正的属性名)

if(($(this).attr("some-attribute")))
Run Code Online (Sandbox Code Playgroud)

无论属性是否存在,它总是返回false.

但是,如果我首先获得此元素的id,然后检查没有"this"关键字的属性,它可以正常工作.

var id = $(this).attr("id");
if(($("#"+id).attr("some-attribute")))
Run Code Online (Sandbox Code Playgroud)

这工作正常,它确实返回正确的值.

gdo*_*ica 6

$(this) 不查询DOM,它只是用jQuery对象包装javascript DOM元素.

$('#id') 查询DOM.

我建议你在这里阅读我的答案

  • Holy Bazingaaaa ++ 1`:)` (2认同)