如果输入元素具有相同的名称,不同的索引,相同的后缀,则迭代数组

时间:2015-06-16 14:34:31

标签: javascript jquery

我有一些具有相同名称和后缀的输入元素,但这些输入有一个索引(数组),如parameterName [index] .PropertyName

类似的东西:

<input type="text" name="stocks[0].Key" value="MSFT" />
<input type="text" name="stocks[1].Key" value="AAPL" />
<input type="text" name="stocks[n].Key" value="ZZZZ" />

我如何迭代这些输入元素?

类似

$("#stocks[x].Key").each

2 个答案:

答案 0 :(得分:3)

您可以在选择器中使用starts with ^ ends with $

$('[name^="stocks["][name$="Key"]').each(function() {
    console.log($(this).val());
});

如果名称属性值starts包含stocks[ends包含Key,则会选择元素。

演示:http://jsfiddle.net/tusharj/0wbzud85/2/

文档:https://api.jquery.com/attribute-equals-selector/

答案 1 :(得分:1)

将输入元素包装在ul和li中,如下所示:

<ul id="foo">
  <li id="1">
    <input type="text" name="stocks[0].Key" value="MSFT" />
  </li>
  <li id="2">
    <input type="text" name="stocks[1].Key" value="AAPL" />
  </li>
</ul>

然后您可以按如下方式访问输入元素:

$('#foo li').each( function() { 
  id = this.id; 
  mytext =  $(this).find('input[type=text]').val();   
});