在jquery中动态调用同级时未定义

Getting undefined in dynamically calling sibling in jquery

本文关键字:未定义 调用 jquery 动态      更新时间:2023-09-26

我是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);
                });

我在警报框中未定义。我的代码出了什么问题。我该如何找到兄弟姐妹。任何帮助都将不胜感激!!!!

.sometd内部的输入元素,因此.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()