0

別の要素の近くにある要素のテキストを変更するのに問題があります。関数はかなり単純ですが、何らかの理由でこのテキストの変更を機能させることができません。

#dislike_text をクリックすると、空白になります (当然のことです) が、.like_text は変更されません。postlike 関数もあることに注意してください (これと同じですが、逆で、正常に動作します)。

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;
}
4

1 に答える 1

1

closest祖先要素を調べて、セレクターに一致する最初のものを見つけます。class を持つ祖先要素がない場合like_text、要素は選択されません。

要素を削除する効果があるため、祖先要素を空白にするつもりはないと思います#stuffしたがって、jQuery のトラバース関数を使用して、他の方法で他の要素への道を見つける必要があります。これを行う最も可能性の高い方法は、 を使用closestして共通の祖先を見つけてfindから、要素自体を取得することです。例えば:

$(elm).closest('div.someClass').find('.like_text').html('Like');
于 2012-10-28T19:40:38.460 に答える