1

我目前有一个动态生成数组输入的表单。我想要做的是获取某个数组索引的输入并继续我必须执行的一些任务(验证等)。

现在,我知道我可以像这样选择输入:

var id = $('#hiddenInputContainer').find('[name="item[1][id]"]')
var name = $('#hiddenInputContainer').find('[name="item[1][name]"]');
// so on...

但我在想是否可以将输入的搜索范围缩小到[name^='item[1]']然后找到idand name

在我的情况下,hiddenInputContainer会有很多输入,我想尽可能地优化 javascript。那么我将如何缩小列表范围呢?

PS我试过做var inputs = $('#hiddenInputContainer').find('[name="item[1]"]')和之后inputs.find('[name*="id"]'),但由于某种原因这不起作用?

html 外观示例:

<div id="hiddenInputContainer">
    <input type="hidden" name="item[1][id]" value="1"/>
    <input type="hidden" name="item[1][name]" value="a name for item 1"/>
    <input type="hidden" name="item[2][id]" value="2"/>
    <input type="hidden" name="item[2][name]" value="a name for item 2"/>
    <input type="hidden" name="item[3][id]" value="51"/>
    <input type="hidden" name="item[3][name]" value="a name for item 51"/>
</div>
4

1 回答 1

2

我认为您正在尝试做这样的事情-

var inputs = $('#hiddenInputContainer').find('[name^="item[1]"]');
inputs.filter('[name*="id"]')
于 2013-06-20T19:05:22.140 回答