jQuery查找和长度

时间:2019-02-13 15:33:21

标签: javascript jquery

js长度未显示元素的正确长度,并且find()无法获取元素的值  我有这样的代码:

<div id="mobiles">
    <input name="mobiles[]" id="mobiles0">
    <input name="mobiles[]" id="mobiles1">
    <input name="mobiles[]" id="mobiles2">
    .
    .
    .
</div>
ID为mobiles1或更多的

输入是通过附加元素动态创建的。 我想获取我使用2种方式输入的数量

  1. $('#mobiles').children('input').length; //不返回任何内容
  2. document.getElementsByName('mobiles[]').length; //返回错误的值,例如8输入3或16输入4或32输入5的错误值。似乎是2的幂

第二个问题是我无法获取第三个输入的值,之后也无法获取。我只是用下面的代码获得第一和第二输入的值。

var xlen = document.getElementsByName('mobiles[]').length;
for (i = 0; i < xlen; i++) {
    var data = $('div').find('#mobiles' + i).val();
    alert(data);
}

或使用$('#mobiles'+i).val();不返回任何内容。

3 个答案:

答案 0 :(得分:1)

通常不建议将Vanilla js与jQuery结合使用。

使用纯jQuery遍历输入。

$("#mobiles input").each(function(){
      console.log($(this).val());
});

已修改以删除推荐尺寸

答案 1 :(得分:1)

获取长度:

$("#mobiles").find("input").length

获取数组中第三个元素的值

$("#mobiles").find("input")[2].value

当然还有其他方法,但这可以肯定。

答案 2 :(得分:0)

使用$("#mobiles input").length应该也可以,请查看下一个示例:

function getValues()
{
    var xlen = $("#mobiles input").length;

    for (i = 0; i < xlen; i++)
    {
        var data = $("#mobiles #mobiles" + i).val();
        console.log(data);
    }
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="mobiles">
  <input name="mobiles[]" id="mobiles0">
  <input name="mobiles[]" id="mobiles1">
  <input name="mobiles[]" id="mobiles2">
</div>

<button onclick="getValues()">Get Values</button>