2009-11-23 73 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