我需要遍历MainDiv
Div中的所有元素来获取它们的值,但问题是我只得到第一个元素
<div id="MainDiv">
<input type="text" id="MyText"value="Text1" />
<input type="text" id="MyText1" value="Text2" />
<textarea id="Textarea1">A</textarea>
<textarea id="Textarea2">B</textarea>
</div>
$('#MainDiv').each(function () {
var Value1 = $(this).find("input[type = 'text'][id^='MyText']").val();
alert(Value1);
var Value2 = $(this).find("[id^='Textarea']").val();
alert(Value2);
})
答案 0 :(得分:2)
HTML #MainDiv
只有一个.each()
将只迭代一次。
您可以使用值包含选择器且值设置为"Text"
来迭代#MainDiv
id
包含"Text"
$("#MainDiv [id*=Text]").each(function() {
console.log(this.value) // do stuff
})
答案 1 :(得分:1)
这是一个例子,选择输入,textarea,从特定分区中选择
如果你可以把name属性,然后想要在数组中访问它更好地使用
$('#MainDiv').find('input, select, textarea').serializeArray();
$('#MainDiv').find('input, select, textarea').each(function(){
console.log(this.id +'=>'+$(this).val());
});
// if you can put name attribute
console.log( $('#MainDiv').find('input, select, textarea').serializeArray() );
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="MainDiv">
<input type="text" id="MyText"value="Text1" />
<input type="text" id="MyText1" value="Text2" />
<textarea id="Textarea1">A</textarea>
<textarea id="Textarea2">B</textarea>
<!-- if you can put name attribute -->
<input type="text" id="t1" name="for_serialize" value="test me"/>
<input type="text" id="t2" name="for_serialize2" value="test me2"/>
</div>
&#13;
答案 2 :(得分:0)
如果你想遍历div中的每个元素,你可以使用&#34; *&#34;在JQuery中使用find方法的选择器。
$('#MainDiv').find("*").each(function (elem) {
console.log(elem)
})
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.2.3/jquery.min.js"></script>
<div id="MainDiv">
<input type="text" id="MyText"value="Text1" />
<input type="text" id="MyText1" value="Text2" />
<textarea id="Textarea1">A</textarea>
<textarea id="Textarea2">B</textarea>
</div>
&#13;
答案 3 :(得分:0)
如果您使用JQuery作为插件,要获取每个字段值,只需按照NKHIL CM给出的示例修改下面的行。
$('#MainDiv').find("*").each(function (key, elem) {
console.log(elem.value);
})