2016-09-14 22 views
0

我試圖使用jQuery和它的每一個功能的get值在這種類型的結構:使用jQuery的。每次的子元素

 <div id="test"> 
     <p><input name="name1" value="Z1"></p> 
     <p><input name="name2" value="Z2"></p> 
     <p><input name="name3" value="Z3"></p> 
     <p><input name="name4" value="Z4"></p> 
     </div> 

我已經試過

 $('#test').find('input').each(function() { } 
     $('#test > p').children('input').each(function() { } 

但我得到的值使用 alert($(this).value); 總是'未定義'。任何想法可能會發生什麼?

+2

可以使用任何遍歷方法。但是,如果您使用的是jQuery,則確定值的語法是['$(this).val()'](http://api.jquery.com/val/)。否則,使用vanilla JavaScript:['this.value'](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#attr-value)。這是一個[示例](https://jsfiddle.net/rfw41vko/)。 – showdev

回答

1

另外,您可以使用選擇#test input會檢索所有的div,您就可以快速訪問throught的.each()方法,像這樣的投入:

var values = []; 
$('#test input').each(function(){ 
    values.push($(this).val()); 
}); 
console.log(values); 

查詢此jsFiddle欲知更多信息。

希望它有幫助。 乾杯。

+0

這對我正在嘗試做的事是一個好主意......謝謝 – Allen

+0

@Allen如果這個答案解決了您的問題,請將其標記爲將來參考的答案。 :) –

0

你應該通過每個<p>標籤,因爲他們有其他的兄弟姐妹,然後在每個函數中找到輸入並獲取值。

這將工作:

$('#test > p').each(function(){ 
    var value = $(this).find('input').val(); 
}); 
+1

他的方法也可以工作。當您在集合上使用'.find()'時,它會搜索所有成員併合並結果。 – Barmar

+0

感謝bendouglas ...那是做的.. – Allen

0
 $('#test input').each(function(i,v){ 
      console.log($(this).val()); 
     });  

說明:我們的'#test input'一個選擇,這意味着我們正在尋找所有input小號直接或及物動詞內#test。到現在爲止還挺好。但是,我們需要它們的value,因此,在函數內部,我們將記錄$(this).val()的結果,它將輸出值到控制檯。

2

您的兩種檢索元素的方法將工作得很好。您看到undefined,因爲您如何訪問輸入值:.val()而不是.value

所以:

$('#test').find('input').each(function() { 
 
    $(document.body).append($(this).val()); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="test"> 
 
    <p><input name="name1" value="Z1"></p> 
 
    <p><input name="name2" value="Z2"></p> 
 
    <p><input name="name3" value="Z3"></p> 
 
    <p><input name="name4" value="Z4"></p> 
 
</div>

0

第一個是工作搭檔。我不確定你的問題是什麼。

https://jsfiddle.net/tsj0w29x/$('#test').find('input').each(function() { alert($(this).value); }

+2

你的小提琴有一個語法錯誤,它缺少關閉')'。 – Barmar

+0

感謝您的糾正。 – Jayee