jQuery удалить () для каждого, если класс содержит текст - PullRequest
1 голос
/ 13 мая 2011

Попытка удалить то, что находится в классе 'bnum', ЕСЛИ заголовок (имя класса = 'productnamecolor colors_productname') содержит текст 'True'.

В основном в приведенном ниже примере вы НЕ ДОЛЖНЫувидеть любое значение «Burkett Bucks» в «True Merchandiser Refrigerator», однако оно все равно должно быть на всех остальных:

<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».Так что я предполагаю, что что-то не так с моим КАЖДЫМ.

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

});

Ответы [ 3 ]

1 голос
/ 13 мая 2011

вместо глобального селектора

$('.bnum')

вам нужно использовать текущий контекст каждого метода в вашей функции, принимая во внимание, что база не находится в том же tr, что и нужная нам цельсделать небольшой обход Dom.

$(".colors_productname:contains('True')").each(function () {
    $(this).closest('tr').next('tr').find('.bnum').remove(); });
0 голосов
/ 13 мая 2011

Попробуйте вместо этого:

$(document).ready(function() {
    $(".colors_productname:contains('True')").each(function () {
        $(this).find('.bnum').remove(); });
});  
0 голосов
/ 13 мая 2011

не должно быть $(this).find('.bnum').remove() или даже короче:
$(".colors_productname:contains('True') .bnum").remove()

...