1

我有这样的 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 搜索和迭代 name ="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 ?

4

1 回答 1

1

更改您的代码:

$('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

由于您想使用only 但 not迭代input标签,您可以这样做:name ="emp[..].address"emp[..].compKey.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());
});
于 2013-11-07T06:48:43.130 回答