-1

我坚持更改其中所有class=like跨度的类<div class="h2" data-id="9">(仅用于此示例。页面上还有更多)。

我需要这种$('.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 回答