【问题标题】:Getting undefined in dynamically calling sibling in jquery在 jquery 中动态调用同级时未定义
【发布时间】:2024-04-17 08:00:02
【问题描述】:

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

我在警告框中未定义。我的代码有什么问题。如何获得兄弟姐妹。 任何帮助将不胜感激!!!!

【问题讨论】:

  • $(this).parent().siblings('.phase') 而不是 $(this).siblings('.phase')

标签: java javascript jquery jsp jstl


【解决方案1】:

.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()

【讨论】:

    最近更新 更多