查找 name 属性值中包含 [somedigit] 的输入

Find input whose name attribute value has [somedigit] in it

我有几个 div 里面有这样的输入:

<div class="executor">
   <input type="hidden" name="Task.Executors[0].Id"/>
   <input type="hidden" name="Task.Executors[0].Name"/>
   <input type="hidden" name="Task.Executors[0].JobTitle"/>
</div>
<div class="executor">
   <input type="hidden" name="Task.Executors[1].Id"/>
   <input type="hidden" name="Task.Executors[2].Name"/>
   <input type="hidden" name="Task.Executors[3].JobTitle"/>
</div>

我需要一个选择器来执行此操作:查找名称包含 Executors[somedigit] 的那些输入。 somedigit 部分对我来说很难。我需要正则表达式吗?

编辑:我似乎错过了一个非常重要的部分。我需要将 Executors[somedigit] 更改为 Executors[2] 之类的内容。所以我需要一些可以帮助我用另一个替换 somedigit 的东西。

EDIT2:为什么我需要这个。假设有 100 个这样的 div。通常最后一个 div 将包含名称包含 Task.Executors[99] 的隐藏输入。现在,假设第 87 个 div 被删除。现在有 99 个 div,现在最后一个 div 中的输入必须将它们的名称从 Task.Executors[99] 更改为 Task.Executors[98]。我需要这些索引是正确的,这样我的模型才是有效的模型。

您可以使用 css 选择器 $("[name^='Task.Executor']") 选择名称以 Task.Executor 开头的所有元素。

您可以查看更多选择器:http://www.w3schools.com/jquery/jquery_ref_selectors.asp

您可以使用包含选择器的属性以及所需数字的串联:

var somenum = 2;
$('[name*="Executor['+ somenum  +']"]')

演示:

$(function(){
var somenum = "0";
$('[name*="Executor['+ somenum  +']"]').val('abv')
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div class="executor">
   <input type="text" name="Task.Executor[0].Id"/>
   <input type="text" name="Task.Executor[0].Name"/>
   <input type="text" name="Task.Executor[0].JobTitle"/>
</div>
<div class="executor">
   <input type="text" name="Task.Executor[1].Id"/>
   <input type="text" name="Task.Executor[2].Name"/>
   <input type="text" name="Task.Executor[3].JobTitle"/>
</div>