2009-11-23 70 views
3

好吧,我想不出我在做什么错在这里...jQuery选择不工作的权利

采取以下jQuery选择...

$('tr[batchid]:has(span.chkselb input:checked) span[id=assetcount]') 

这将返回2个元素。然而,如果我做以下选择器:

$('tr[batchid]:has(span.chkselb input:checked) span#assetcount') 

这将返回0个元素。不是所有意图和目的的这两个选择器都是相同的吗?
还是有一些奇怪的互动“:有”运营商还是什么?我得到了它的第一份陈述工作,但我真的很好奇,为什么第二个(我最初的选择)不起作用。任何见解?

回答

6

$('tr[batchid]:has(span.chkselb input:checked) span[id=assetcount]')不应返回两个元素,标识必须是唯一的。

这向我建议你重新使用ID,我猜你使用的第一个不匹配tr[batchid]:has(span.chkselb input:checked),所以第二个选择器不返回任何行。

你应该做的ID是唯一的。

+0

良好的通话...... – bdukes 2009-11-23 19:52:48

+0

所以我想,一定有什么在jQuery的检查的ID(#)选择与它会检查的属性([])选择的方式方法,是吗? 我用的id属性,以确定在数据网格控制行的跨距(编程结合的)。相反,我所做的是将其更改为“fieldid =”,并相应地调整了我的选择器。 感谢您的解释! – eidylon 2009-11-23 20:17:14