使用jquery删除没有id的表

时间:2010-07-03 12:24:01

标签: jquery

我在页面上有以下动态生成的表以及页面上的其他表。我需要删除没有id的表。我可以想到两种方法中的一种,以便将表作为删除目标,因为它们永远不会改变。

通过class =“matching_results_text”或 通过文字“你在这里”

只是不知道该怎么做。

我试过$(“table”)。remove(“:contains('你在这里:')”);但那不行。

<table width="100%" border="0" cellspacing="0" cellpadding="5">
          <tr> 
            <td>        
                <b>You are here: <a href="http://www.test.com">Home</a> &gt; <a href="http://www.test.com/Ignition-Controls-s/30.htm" title="Ignition Controls">Ignition Controls</a></b>
<div class="matching_results_text">We found 10 results matching your criteria.</div>

 </td>
          </tr>
        </table>

3 个答案:

答案 0 :(得分:2)

$("table").each(function() {
    var thisTable = $(this);
    if($(this).children().is(":contains('You are here')")) {
        thisTable.remove();
    }
});

答案 1 :(得分:2)

编辑:注意,如果有多个元素包含div.matching_results_texta[title=Ignition Controls],则无法使用,因为您将匹配所有这些元素。< / p>

如果是这种情况,请尝试我给出的最后一个解决方案,或发布更多HTML结构。可能有祖先元素会有所帮助。


jQuery的.closest()方法返回一个包含与选择器匹配的最近祖先的结果。

    // Starting point is the class name
$('table div.matching_results_text').closest('table').remove();

    // Starting point is the <a> element with the title Ignition Controls
$('table a[title=Ignition Controls]').closest('table').remove();

为了好玩,我会在那里再添加一个使用:contains().closest()的选项。

    // Starting point is the <b> element that contains "You are here"
$('table b:contains(You are here)').closest('table').remove();

http://api.jquery.com/closest/

如果你知道它是(例如)页面上的第3个表,你可以使用索引引用。

     // Get the third table on the page
$('table:eq(2)').remove();

http://api.jquery.com/eq-selector/

答案 2 :(得分:1)

更简单的方法:

$("table:contains('You are here')").remove();