jquery更改元素部分工作

时间:2012-10-28 19:35:34

标签: jquery

我在更改靠近另一个元素的元素中的文本时遇到问题。该功能相当简单,但由于某种原因,我不能让这个文本更改起作用。

当我点击#dislike_text时,它变为空白(应该如此),但.like_text不会改变。请注意,还有一个类似post的功能(与此相同,但相反,可以正常工作)。

function postdislike(elm) {

    var comment_id = $(elm).attr('href');

    $('#stuff').load(// --function-- 

      function (data) {

        $('#dislike_text' + comment_id).html(""); //works fine
        $(elm).closest('.like_text').html('Like'); //doesn't work
    });
    return false;
}

1 个答案:

答案 0 :(得分:1)

closest通过祖先元素上升并找到与选择器匹配的第一个元素。如果没有类like_text的祖先元素,则不会选择任何元素。

我认为你并不是要删除一个祖先元素,因为这会删除#stuff元素。因此,您需要使用jQuery的traversing functions以其他方式找到通往其他元素的方法。最有可能的方法是使用closest来查找共同的祖先,然后使用find来获取元素本身。例如:

$(elm).closest('div.someClass').find('.like_text').html('Like');