我有这样的 JSP 代码:
<% int idx=0; %>
<logic:iterate id="emp" name="myForm" property="myList" indexId="xdi">
<tr class="myClass">
<td>
<input type="hidden" name="emp[<%=idx%>].compKey.id" />
<input type="hidden" name="emp[<%=idx%>].compKey.joinDate" />
<input type="hidden" name="emp[<%=idx%>].compKey.address" />
<input type="hidden" name="emp[<%=idx%>].compKey.house.address" />
<input type="hidden" name="emp[<%=idx%>].name" />
<input type="hidden" name="emp[<%=idx%>].fakeaddress" />
<input type="hidden" name="emp[<%=idx%>].address" />
</td>
</tr>
<% idx++; %>
</logic:iterate>
我想使用 jQuery 搜索并迭代名称为“emp[..].address”的输入标记。如果我尝试这样做:
$('tr.myClass input[name$=address]').each(function(index){
alert($(this).val());
});
它还将迭代 name="emp[..].compKey.address"、"emp[..].compKey.house.address"、"emp[..].fakeaddress"的输入标记。是否可以在中间使用通配符进行搜索,例如:emp[*].address ?
最佳答案
更改您的代码:
$('tr.myClass input[name$=address]').each(function(index){
alert((this).val());
});
至:
$('tr.myClass input[name$=address]').each(function(index){
alert($(this).val());
});
您的代码中缺少 $
:
alert($(this).val());
____^____ // missing in your code
更新#1
因为您只想使用 name ="emp[..].address"
而不是 emp[..].compKey 迭代
,您可以这样做:input
标记.address
var $address = $('tr.myClass input[name$=address]:not(input[name$="compKey.address"])');
$address.each(function(index){
alert($(this).val());
});
更新#2
如果您有很多以相同名称结尾的元素,您可以这样做:
var $address = $('tr.myClass input[name$="].address"]');
$address.each(function(index){
alert($(this).val());
});
关于javascript - 如何使用 jquery 有效地搜索具有中间有索引的名称属性的输入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19829622/