-1

class=like内部にあるすべてのスパンのクラスを変更することに行き詰まっています<div class="h2" data-id="9">(この例では 1 つだけです。ページには他にもあります)。

$('.h2[data-id="9"]')特定divの sを選択する必要があるため、この方法が必要です。

この場合、どうすればclassすべてclass=likeを別のものに変更できますか。私はこれでどこにも行かないようです。以下の私のコードを見れば、私が達成しようとしていることがわかります。

助けていただけますか?

success: function(data){
         // Remove class like, add class no-link
         $('.like[data-id="'+data+'"]').removeClass('like').addClass('no-like');

    //For this example
    $('.h2[data-id="9"]').siblings().removeClass('like').addClass('grey');
    },

じぶんの<div>

<div class="h1" data-id="8">Restaurants</div>
        <div class="h2" data-id="9">Which is your favourtie restaurant in town?
            <div>* McDonalds &nbsp              <span class="like" data-id="10" data-sec="9">Like</span></div>
            <div>* KFC &nbsp                    <span class="like" data-id="11" data-sec="9">Like</span></div>
            <div>* The Heart Attack Grill &nbsp <span class="like" data-id="12" data-sec="9">Like</span></div>
            <div>* In-n-Out &nbsp               <span class="like" data-id="13" data-sec="9">Like</span></div>
            <div>* Popeye's &nbsp               <span class="like" data-id="14" data-sec="9">Like</span></div>
        </div>
4

2 に答える 2

1

siblingsメソッドは、選択した要素の兄弟要素を選択し、ターゲット要素は選択した要素の子孫です。代わりにメソッドdivを使用する必要があります。.find()

$('.h2[data-id="'+ data +'"]').find('span.like')
                              .removeClass('like')
                              .addClass('grey'); 
于 2013-08-26T13:03:26.270 に答える
1

これを試してみてください:

function classReplace(data,replacementClass) {
        //$('.h2[data-id="' + data + '"]').children('div').children('span[data-sec="' + data + '"]').removeClass('like').addClass(replacementClass);
  $('.h2[data-id="'+ data +'"]').children('div').children('span.like').removeClass('like').addClass(replacementClass);
};

classReplace(9,'hide');

置き換えたいデータ ID を渡すだけです。

于 2013-08-26T12:58:06.963 に答える