2010-03-30 96 views
0

我想獲得一個div內的值列表,我將稍後使用.each()方法進行格式化。他們是隱藏我的html和jquery調用看起來像這樣的輸入值。jquery獲取div內隱藏輸入值的列表

<div id="container_0"> 
    <input type="hidden" id="check_data" value=10> 
    <input type="hidden" id="check_data" value=20> 
</div> 

的Jquery:

var list = $('#container_0 input#check_data'); 

$(list).each(
     function() { 
      alert($(this).val()); 
     } 
); 

然而,這並不返回任何值。任何幫助將不勝感激。

+0

您的值(10,20)應該用引號引起,輸入元素應該正確關閉。正確的XHTML總是讓事情變得更好(儘管在這種情況下,我懷疑不正確的html代碼導致了這個問題) – Pickle 2010-03-30 17:42:12

回答

8

您不能多次使用相同的ID,這是無效的HTML。當你這樣做時,任何結果都是不可預知的,特別是在瀏覽器中。

這應該工作到雖然提醒值:如果您使用的類,像這樣

$('#container_0 input').each(function() { 
    alert($(this).val()); 
}); 

<div id="container_0"> 
    <input type="hidden" class="check_data" value=10> 
    <input type="hidden" class="check_data" value=20> 
</div> 

那麼這個會發現只有那些輸入:

$('#container_0 input.check_data').each(function() { 
    alert($(this).val()); 
}); 
+0

我同意,用類替換id應該有效。 – kodisha 2010-03-30 15:51:04

+0

@kodisha - 當然,只是添加該選項:) – 2010-03-30 15:52:50

0

Nick完全正確,你不能在一個html文檔中多次使用id。

什麼可以幫助你的是:選擇不同的ID對您輸入

然後通過類似選擇兩個輸入:

$('#container_0 input') 

如果匹配的元素太多,您仍然可以添加類輸入:

<div id="container_0"> 
    <input class="fencyInput" /> 
    <input class="fencyInput" /> 
    <input class="notFancy" /> 
</div> 

在哪裏等

$('#container_0 input.fencyInput') 
選擇

只會匹配前兩個div(類可以多次使用)。