在Div中循环遍历元素只获得第一个元素

时间:2017-10-14 10:43:20

标签: javascript jquery html css

我需要遍历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);

        })

4 个答案:

答案 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();

&#13;
&#13;
$('#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;
&#13;
&#13;

答案 2 :(得分:0)

如果你想遍历div中的每个元素,你可以使用&#34; *&#34;在JQuery中使用find方法的选择器。

&#13;
&#13;
  $('#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;
&#13;
&#13;

答案 3 :(得分:0)

如果您使用JQuery作为插件,要获取每个字段值,只需按照NKHIL CM给出的示例修改下面的行。

$('#MainDiv').find("*").each(function (key, elem) {
  console.log(elem.value);
})