2012-10-16 40 views
2

$.each()循环中,有一个特定情况,我不明白为什么失败。

当我做了一个声明,如果说这样的事情(我的具体的例子,只是没有真正的属性名称)

if(($(this).attr("some-attribute"))) 

它始终返回false,属性是否存在。

但是,如果我第一次得到这个元素的id,然后检查没有“this”关键字的属性,它可以正常工作。

var id = $(this).attr("id"); 
if(($("#"+id).attr("some-attribute"))) 

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

+0

你能给一些背景何时/如何重现这个问题,比如在http://jsfiddle.net? –

+0

我的意思并不是迂腐,它可能是填充文本,但如果你的属性有一个空间,这不是一个有效的属性。你可以发布实际的代码,或编辑[这个小提琴](http://jsfiddle.net/jimschubert/n69jt/)? –

回答

6

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

$('#id')查询DOM。

我建议你阅读my answer here

+0

尽管这回答问题标题,但实际问题似乎有点不同。 –

+0

@FabrícioMatté。真正的代码丢失了,他可能有一个错字错误,因为他描述的情况是**不可能**,因为我看到它。 – gdoron

+2

Holy Bazingaaaa ++ 1':)' –

相关问题