2011-06-05 159 views
1

可能重複:
Check for values in multidimensional input array幫助jQuery選擇

我使用jQuery選擇尋找重複的令牌一組,看起來像這樣的輸入標籤:

<ul id="class-items"> 
<li> 
    <input type="hidden" name="tokens[0][Search_Type]" value="a" /> 
    <input type="hidden" name="tokens[0][Search_Term]" value="123" /> 
</li> 
<li> 
    <input type="hidden" name="tokens[1][Search_Type]" value="b" /> 
    <input type="hidden" name="tokens[1][Search_Term]" value="456" /> 
</li> 
</ul> 

這是我的jQuery選擇器檢查重複標記,似乎沒有工作:

if ($('#class-items > li > input[name$="Search_Type"][value="' + searchType + '"] + input[name$="Search_Term"][value="' + searchTerm + '"]').length == 0) 

我知道隱藏令牌的添加是正確的,正如我從查看DOM源所看到的。

+0

細說*複製令牌*。 – 2011-06-05 20:16:44

+0

是不是這樣你問這裏http://stackoverflow.com/questions/6239925/check-for-values-in-multidimensional-input-array? – Niklas 2011-06-05 20:20:03

+0

@Niklas是的,現在我只是想在這種情況下調試 – babonk 2011-06-05 20:21:07

回答

2

您的name屬性不以Search_TypeSearch_Term結尾。

他們有一個]末,所以選擇應該使用Search_Type]Search_Term],如:

 // -------------------------------------v 
'#class-items > li > input[name$="Search_Type]"][value="' + 
    searchType + '"] + input[name$="Search_Term]"][value="' + 
    searchTerm + '"]' 
+2

我按下「發佈你的答案」按鈕約2秒鐘...... darnit :) – 2011-06-05 20:26:02

0

你有沒有試過給輸入簡單的名字(例如input1 ..),使它不是那導致你的問題?

0

考慮分手了你的選擇,以確保該+操作者正確地匹配在同級別的元素:

$('#class-items > li').find('input[name$="Search_Type]"][value="' + searchType + '"] + 
          input[name$="Search_Term]"][value="' + searchTerm + '"]') 

注意:每到你的問題,別人的評論也是您name$=而言是不正確的,因爲他們忽略尾部方括號。