如果类包含文本,则每个jQuery remove()

时间:2011-05-13 14:14:08

标签: jquery if-statement each contains

如果标题(class name ='productnamecolor colors_productname')包含文本'True',请尝试删除类'bnum'中的内容。

基本上在下面的示例中,您不应该在“True Merchandiser Refrigerator”下看到任何“Burkett Bucks”值,但它应该仍然存在于所有其他值:

<table width="300px">
    <tr>
      <td width="100%" valign="top"><a class="productnamecolor colors_productname" href=""> Star Griddle</a></td>
    </tr>
    <tr>
      <td width="100%" valign="top"><table cellspacing="0" cellpadding="0" width="100%">
          <tbody>
            <tr>
              <td width="64%" valign="top"><font class="text colors_text rewardpoints"><span id="offers">Special Offers:</span><br>
                <div class="bbucks"><img src="http://bit.ly/ihYMFL" id="bucks"> Earn <span class="bnum">2343</span> Burkett Bucks</div>
                </font></td>
              <td align="right" width="36%"></td>
            </tr>
          </tbody>
        </table></td>
    </tr>
    <tr>
      <td width="100%" valign="top"><a class="productnamecolor colors_productname" href=""> True Merchandiser Refrigerator</a></td>
    </tr>
    <tr>
      <td width="100%" valign="top"><table cellspacing="0" cellpadding="0" width="100%">
          <tbody>
            <tr>
              <td width="64%" valign="top"><font class="text colors_text rewardpoints"><span id="offers">Special Offers:</span><br>
                <div class="bbucks"><img src="http://bit.ly/ihYMFL" id="bucks"> Earn <span class="bnum">2343</span> Burkett Bucks</div>
                </font></td>
              <td align="right" width="36%"></td>
            </tr>
          </tbody>
        </table></td>
    </tr>
    <tr>
      <td width="100%" valign="top"><a class="productnamecolor colors_productname" href="">Generic Something</a></td>
    </tr>
    <tr>
      <td width="100%" valign="top"><table cellspacing="0" cellpadding="0" width="100%">
          <tbody>
            <tr>
              <td width="64%" valign="top"><font class="text colors_text rewardpoints"><span id="offers">Special Offers:</span><br>
                <div class="bbucks"><img src="http://bit.ly/ihYMFL" id="bucks"> Earn <span class="bnum">2343</span> Burkett Bucks</div>
                </font></td>
              <td align="right" width="36%"></td>
            </tr>
          </tbody>
        </table></td>
    </tr>
    </table>

我遇到的问题是它正在为所有值执行此操作,我只想删除其中包含“True”一词的每个标题下的值。所以我假设我的EACH有问题。

$(document).ready(function() {    
    $(".colors_productname:contains('True')").each(function () {
        $('.bnum').remove(); });

});

3 个答案:

答案 0 :(得分:1)

而不是全局选择器

$('.bnum')

你需要使用函数中每个方法的当前上下文,考虑到基数与目标不在同一个tr中,我们需要做一点Dom遍历。

$(".colors_productname:contains('True')").each(function () {
    $(this).closest('tr').next('tr').find('.bnum').remove(); });

答案 1 :(得分:0)

不应该是$(this).find('.bnum').remove()甚至更短:
$(".colors_productname:contains('True') .bnum").remove()

答案 2 :(得分:0)

试试这个:

$(document).ready(function() {
    $(".colors_productname:contains('True')").each(function () {
        $(this).find('.bnum').remove(); });
});