带数组的Jquery名称选择器

时间:2016-10-10 12:42:37

标签: javascript jquery jquery-selectors

我试图用jQuery获取2个输入的值,但我们用于复选框的数组选择器不起作用。如何获取下面示例代码的值。

<input name="person[name]">
<input name="person[age]">

<script>
    $("input[name='person[]']").val();
</script>

3 个答案:

答案 0 :(得分:2)

使用合并的attribute starts withattribute ends with选择器。最后使用map()方法迭代元素并生成值数组。如果你只是想迭代它们,那么each()方法就足够了this可以用来引用回调中元素的dom对象。

$("input[name^='person['][name$=']']")

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="person[name]">
<input name="person[age]">

<script>
  console.log(
    $("input[name^='person['][name$=']']").map(function() {
      return this.value
    }).get()
  )
</script>
&#13;
&#13;
&#13;

&#13;
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="person[name]">
<input name="person[age]">

<script>
  $("input[name^='person['][name$=']']").each(function() {
    console.log(this.value);
  })
</script>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

$("input[type='checkbox'][name='ProductCode']").each(function(){ ...

答案 2 :(得分:-1)

您可以将*=用于包含。或^=开头。

示例

$("input[name*='person['").each(function(){
  console.log($(this).val());
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input name="person[name]" value="test">
<input name="person[age]" value="ok">