每个如果类包含文本的jQuery remove()
Posted
技术标签:
【中文标题】每个如果类包含文本的jQuery remove()【英文标题】:jQuery remove() for each if class contains text 【发布时间】:2011-08-24 23:50:04 【问题描述】:如果标题(类名='productnamecolor colors_productname')包含文本“True”,则尝试删除“bnum”类中的内容。
基本上,在下面的示例中,您不应在“True Merchandiser Refrigerator”下看到任何“Burkett Bucks”值,但它仍应出现在所有其他示例中:
<table >
<tr>
<td valign="top"><a class="productnamecolor colors_productname" href=""> Star Griddle</a></td>
</tr>
<tr>
<td valign="top"><table cellspacing="0" cellpadding="0" >
<tbody>
<tr>
<td 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" ></td>
</tr>
</tbody>
</table></td>
</tr>
<tr>
<td valign="top"><a class="productnamecolor colors_productname" href=""> True Merchandiser Refrigerator</a></td>
</tr>
<tr>
<td valign="top"><table cellspacing="0" cellpadding="0" >
<tbody>
<tr>
<td 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" ></td>
</tr>
</tbody>
</table></td>
</tr>
<tr>
<td valign="top"><a class="productnamecolor colors_productname" href="">Generic Something</a></td>
</tr>
<tr>
<td valign="top"><table cellspacing="0" cellpadding="0" >
<tbody>
<tr>
<td 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" ></td>
</tr>
</tbody>
</table></td>
</tr>
</table>
我遇到的问题是它对所有值都执行此操作,我只想删除每个标题下包含“True”字样的值。所以我假设我的每个人都有问题。
$(document).ready(function()
$(".colors_productname:contains('True')").each(function ()
$('.bnum').remove(); );
);
【问题讨论】:
【参考方案1】:而不是全局选择器
$('.bnum')
你需要在你的函数中使用每个方法的当前上下文,考虑到基础和目标不在同一个 tr 中,我们需要做一点 Dom 遍历。
$(".colors_productname:contains('True')").each(function ()
$(this).closest('tr').next('tr').find('.bnum').remove(); );
【讨论】:
这也不起作用,我认为这些都非常有效,不幸的是,“标题”和“bnum”类位于不同的“TR”中......也许这就是我们遇到问题的地方 啊,错过了,html 在我的显示器上变得非常混乱。更新为在删除之前进行正确的 Dom 遍历。【参考方案2】:不应该是$(this).find('.bnum').remove()
或者更短吗:$(".colors_productname:contains('True') .bnum").remove()
【讨论】:
【参考方案3】:试试这个:
$(document).ready(function()
$(".colors_productname:contains('True')").each(function ()
$(this).find('.bnum').remove(); );
);
【讨论】:
根本不需要.each()
。以上是关于每个如果类包含文本的jQuery remove()的主要内容,如果未能解决你的问题,请参考以下文章