1

子に「PageText_L657n」のクラスがある場合、クラス「pricecolor」のクラスをフォントタグに追加しようとしています。

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

3 に答える 3

4

:has()セレクターを使用します。

$('.pricecolor:has(.PageText_L657n)').addClass('ice1');
于 2011-02-15T18:03:07.747 に答える
3

編集:明確化した後、これが必要なようです:

例: http://jsfiddle.net/WeCCT/2/

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

これにより、 class を持つ要素が選択されPageText_L657n、最も近い祖先が取得され<td>find()(docs)メソッドを使用してネストされた.pricecolor要素が検索され、 eq()( docs) メソッドを使用してクラスを追加する前に最初の要素に絞り込まれます。


元の答え

querySelectorAll有効なセレクターに限定したい場合は、次のようにします。

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

これは、要素の選択から始まり、.PageText_L657nその親までトラバースし、親にクラスがある場合にのみクラスを追加し.pricecolorます。

于 2011-02-15T18:05:35.667 に答える