如何在方法中访问父级兄弟姐妹?

时间:2013-12-31 04:08:13

标签: jquery

如何访问父级兄弟?

我正在看这两个:

elem.parent().siblings('#js-userLogged').val()
elem.parent().siblings('#js-eventId').val()

...= function()
{
    function addComment(elem, comment)
    {
        $.post('/shindig/ajax-add-comment', 
        {
            eventId : elem.parent().siblings('#js-eventId').val(), 
            userLogged : elem.parent().siblings('#js-userLogged').val(), 
            comment: comment, 
            ajax: true
        }, 
        function(data)
        {
            ... 

HTML:

<div class="newComments">
    <input id="js-userLogged" type="hidden" value="111111111" name="userLogged"/>
    <input id="js-eventId" type="hidden" value="9999" name="eventId"/>
    <textarea class="addComment" value="Write a comment..." placeholder="Write a comment..." title="Write a comment..." ></textarea>
</div>

1 个答案:

答案 0 :(得分:1)

如果elem是textarea,则输入字段是其兄弟元素,而不是父元素。所以试试

$.post('/shindig/ajax-add-comment', {
    eventId: elem.siblings('#js-eventId').val(),
    userLogged: elem.siblings('#js-userLogged').val(),
    comment: comment,
    ajax: true
}, function (data) {})

另请注意,元素的id必须是唯一的,所以如果你的页面中有这样的多个结构,那么最好使用class / name属性来找到像

这样的元素
$.post('/shindig/ajax-add-comment', {
    eventId: elem.siblings('[name="eventId"]').val(),
    userLogged: elem.siblings('[name="userLogged"]').val(),
    comment: comment,
    ajax: true
}, function (data) {})