2010-05-21 73 views
2

我想在我的代碼中選擇動態輸入字段的ID。當點擊一個按鈕,窗體將創建表單域這樣的:使用jquery選擇正確的輸入字段

<td><input type="text" id="field_a_1"></td> 
<td><input type="text" id="field_b_1"></td> 
<td><input type="text" id="field_c_1"></td> 

當我再次點擊按鈕,我得到這樣的:

<td><input type="text" id="field_a_2"></td> 
<td><input type="text" id="field_b_2"></td> 
<td><input type="text" id="field_c_2"></td> 

我想要做的就是選擇只有場ID,我需要從特定的輸入拉值,並將它傳遞給這樣一個變量:

var example = $(":input:eq(0)").val(); 

我知道通過後:input選擇加入:eq(0)或者它只會抓取field_a_1的ID,那麼我該如何設置它,以便我可以將我需要的字段分配給變量?

+2

你的問題有點混淆......你的輸入是否隨着按鈕的推動而動態變化?你是否試圖在每次按下按鈕後僅定位第一,第二等輸入字段? – Mottie 2010-05-21 13:13:58

+0

也許你可以重新說一下這些語句來澄清你想要的「只需將字段分配給變量」和「只選擇需要從特定輸入中提取值的字段ID」導致我想知道一點。 – 2010-05-21 13:17:21

+0

fudgy,我的意思是說,當我再次點擊按鈕時,我得到一組新的輸入與新的ID。示例中的第一組表示單個表格行。第二組實際上是一個新的表格行,不會改變第一行。所以當我點擊按鈕時,我會得到一個新的表格行,它將增加id名稱中的數字。我需要的是能夠分別計算每行的值,因此需要能夠爲每行選擇正確的ID。由於我是jquery的新手,你將不得不原諒我。 – rshivers 2010-05-21 17:37:32

回答

1

這就是ID的用途。所以你可以選出一個特定的元素。

$('#field_b_2').val(); // Will return the element with that ID. 

#表明您正在尋找一個ID的元素,而不是.這將尋找一個元素(或元素)與類:

$('.someClass').val(); // Will return elements with that class 

請記住,標識可能不會在元素之間共享。只有一個元素可能具有特定的ID。

另一方面,類可以在您需要的儘可能多的元素之間共享。

+0

是的,這是我正在尋找的。謝謝! – rshivers 2010-05-21 13:23:52

+0

+1 - 這可能是他在課堂上尋找的東西,但是我無法從問題中得知。 – 2010-05-21 13:24:20

0

如果你只想要元素的ID,你應該做的:

var example = $(":input:eq(0)").attr("id"); 

然後你就可以稍後再與訪問字段:

$("#" + example).show(); //or whatever you want to do 
+0

你可以做'var example = $(「:input」)。attr(「id」);':) – 2010-05-21 13:17:23

+0

但他需要選擇一個特定的索引。如果他需要的只是第一個,你的代碼將不起作用。 – Malfist 2010-05-21 13:24:49

+0

因爲你沒有將一個變量傳遞給':eq(0)'這是旁邊的點:)但是,我發佈的只是*特定*發佈代碼的更快捷的快捷方式。 – 2010-05-21 13:32:44

0

您輸入IDS不斷變化,如: 當你第一次點擊的時候它會全部爲:field_a_1然後是field_a_2等。

你只需使用它來獲得正確的值。

$('input[id^=field_]').each(function(){ 
    alert($(this).val()); 
});