JQuery добавить класс, если дочерний класс имеет класс ххх - PullRequest
1 голос
/ 15 февраля 2011

Попытка добавить класс в тег шрифта с классом "pricecolor", если дочерний класс имеет класс "PageText_L657n".

    <table width="100%" cellspacing="0" cellpadding="0">
  <tbody>
    <tr>
      <td width="64%" valign="top"> Stock Item (Usually Ships Within 24 Hours) <br>
        <font class="text colors_text"><span class="PageText_L483n"><b><span class="PageText_L334n">MSRP</span>: $4,895.00</b> </span></font><br>
        <b><font class="pricecolor colors_productprice"><span class="PageText_L483n"><font class="text colors_text"><b>Regular Price: </b></font> $1,872.34 </span></font></b><br>
        <br>
      <a class="pricecolor colors_productprice"><span class="PageText_L657n"><span style="font-size: 16px; color: rgb(0, 0, 255);">Click To Get Today's Special Price!</span></a></td>
      <td width="36%" align="right"></td>
    </tr>
  </tbody>
</table>

<script>
$(function(){
$(".pricecolor").child().hasClass("PageText_L657n").addClass("ice1");
});

</script>

Ответы [ 3 ]

4 голосов
/ 15 февраля 2011

Используйте селектор :has():

$('.pricecolor:has(.PageText_L657n)').addClass('ice1');
3 голосов
/ 15 февраля 2011

РЕДАКТИРОВАТЬ: После разъяснения, кажется, вы хотите это:

Пример: http://jsfiddle.net/WeCCT/2/

$('.PageText_L657n').closest('td').find('.pricecolor').eq(0).addClass('ice1');

Выбирает элементы класса PageText_L657n, затем получает ближайшего предка <td> и использует find() (документы) метод для найдите вложенные элементы .pricecolor и метод eq() (документы) , чтобы сузить его до первого перед добавлением класса.


Оригинальный ответ

Если вы хотите ограничить себя действительными селекторами querySelectorAll, сделайте следующее:

$('.PageText_L657n').parent('.pricecolor').addClass('ice1');

Это начинается с выбора элемента .PageText_L657n, затем проходит до его родителя и только добавляет класс, если у родителя есть класс .pricecolor.

0 голосов
/ 23 мая 2013

Классы .pageText находятся в разметке, только если вы являетесь администратором этого сайта. Ваш магазин не будет отображать ваш код CSS на веб-интерфейсе, когда вы не вошли в систему, потому что эти классы больше не существуют в исходном коде. У меня была та же проблема, так как я всегда писал код, когда входил на сайт.

...