我是jquery的新手。在我的代码中,我在jquery中动态生成单选按钮。当用户单击单选按钮时,我应该得到兄弟姐妹的值。这是我的jsp代码。
<div id="result">
<c:forEach var="user" items="${model.userList}">
<table>
<thead>
<tr>
<td>Name</td>
<td>Is Approver</td>
</tr>
</thead>
<tbody>
<c:forEach var="disp" items="${user.value}">
<tr>
<td><c:out
value="${disp.getTblUserDetails().getUserName()}" /></td>
<td class="phase" style="display:none"><c:out value='${user.key.getId()}'/></td>
<td class="users" style="display:none"><c:out value='${disp.getTblUserDetails().getId()}'/></td>
<td><input type="radio" name="approver" class="some" /></td>
</tr>
</c:forEach>
</tbody>
</table>
</c:forEach>
</div>
我的Jquery代码:
$("#result").on("click",".some",function() {
event.preventDefault();
var phaseid= $(this).siblings('.phase').val();
var userid=$(this).siblings('.users').val();
alert(userid+" "+phaseid);
});
我在警告框中未定义。我的代码出了什么问题。我得到了兄弟姐妹。 任何帮助将不胜感激!!!!
答案 0 :(得分:2)
.some
是td
中的输入元素,因此.phase
和.users
不是this
的兄弟,他们是父母的兄弟姐妹this
。所以
$("#result").on("click", ".some", function (event) {
event.preventDefault();
var $td = $(this).parent();
var phaseid = $td.siblings('.phase').text();
var userid = $td.siblings('.users').text();
alert(userid + " " + phaseid);
});
td
也没有价值,您可能需要使用.text()