jQuery addClass для всех элементов с классом - PullRequest
4 голосов
/ 02 мая 2011

Я хочу добавить класс 'strike' к классу 'priceis', ЕСЛИ класс 'specialprice' существует. В настоящее время это только помещает это в ПЕРВЫЙ элемент, а не каждый элемент, который появляется на странице. Мне нужно, чтобы он проверил все элементы с классом specialprice.

<font class="pricecolor colors_productprice specialprice">
    <span class="PageText_L483n">
     <font class="text colors_text"><b>Regular Price:<br> </b></font>
    <span class="priceis">$2,492<sup>.38</sup></span></span>
</font>

$('.specialprice').find('.priceis').addClass('strike');

Ответы [ 5 ]

8 голосов
/ 02 мая 2011

может быть как то так?все еще не уверен в объяснении вашего вопроса, не ясно ..

$(function() {
  $('.specialprice').each(function() {
    $(this).find('.priceis').addClass('strike');
  });
}

РЕДАКТИРОВАТЬ: только что понял, может быть, вы хотели это так?

$('.specialprice').each(function() {
  $(this).find('*').addClass('strike');
});
7 голосов
/ 02 мая 2011

$('.specialprice.priceis').addClass('strike');?

6 голосов
/ 02 мая 2011

Ваш HTML неверен

<span id="priceis">

Вы, вероятно, хотели установить class вместо id.

<span class="priceis">

Ваш текущий код будет работать, если вы исправитеваш HTML.

Возможно, вы захотите захотеть увидеть этот ответ , он объясняет, почему скрипт не работает, если включен перед элементами DOM.

1 голос
/ 02 мая 2011
$('.priceis').each(function(i, item) {

    var $item = $(item);

    if( $item.hasClass('specialprice') || $item.parents('.specialprice') )
    {
        $item.addClass('strike');
    }

});
0 голосов
/ 02 мая 2011

Попробуйте это:

$('.specialprice').has('.priceis').addClass('strike');
...