2012-02-20 34 views
4

請檢查以下代碼。在這裏,我正在刪除該行,如果該行td包含值「B」。但是波紋管代碼正在刪除所有行。我想刪除該行,如果該行的​​在我的下面的代碼中只包含B?

jQuery的

$(document).ready(function() { 
    $("#mytable tr td:contains('B')").parent().remove(); 
}); 

HTML

<table border="0" align="center" width="45%" cellpadding="2" cellspacing="2" id="mytable"> 
    <tr> 
     <td align="center" width="15%">A</td> 
     <td align="center" width="15%">B</td> 
     <td align="center" width="15%">C</td> 
    </tr> 
    <tr> 
     <td align="center" width="15%">AA</td> 
     <td align="center" width="15%">BB</td> 
     <td align="center" width="15%">CC</td> 
    </tr> 
    <tr> 
     <td align="center" width="15%">AAA</td> 
     <td align="center" width="15%">BBB</td> 
     <td align="center" width="15%">CCC</td> 
    </tr> 
</table> 
+2

所有的行都有'B'。你只想移除細胞? – ChrisA 2012-02-20 09:55:52

回答

7

爲了除去其中在其內一個td僅包含 'B'

var searchString = 'B'; 
$("#mytable tr td:contains('" + searchString + "')").each(function() { 
    if ($(this).text() == searchString) { 
     $(this).parent().remove(); 
    } 
}); 

Example fiddle

tr與所有 td元件沿 -

要僅除去包含「B」

parent()是把選擇器上tr,然後被除去td。這裏您不需要使用parent()

$("#mytable tr td:contains('B')").remove(); 

Example fiddle

+0

據我瞭解,他想刪除行。 – RoToRa 2012-02-20 10:28:50

+0

這就是它的讀法,但他的代碼已經做到了 - 所以我認爲這不是他想要做的。 – 2012-02-20 10:29:42

+0

據我所知,他想要刪除「B」行,但不是「BB」或「BBB」。 – RoToRa 2012-02-20 10:35:42

0

桑迪普試試這個。

 $(document).ready(function() 
    { 
     $("#mytable td").text(function(index, currentText) 
     { 
      if(currentText.trim()=='B') 
       $(this).parent().remove(); 
     }); 
    }); 
+1

爲什麼?這太複雜了。 ':contains'工作得很好。 – elclanrs 2012-02-20 09:57:09

+0

問題是刪除表格行。所以我正在檢查每個​​ – Hearaman 2012-02-20 10:09:34

+0

@elclanrs據我所知,他想要刪除行「B」,但不是「BB」或「BBB」,並且「:contains」匹配子字符串,所以它不起作用這裏。 – RoToRa 2012-02-20 10:31:06

0

這應該有效。不知道這是否是最好的正則表達式,但它的工作原理。它將刪除<tr>,其中包含<td>只有一個大寫Bhttp://jsfiddle.net/mV4z3/

$('td').filter(function(){ 
    return /^B$/.test($(this).text()); 
}).parent().remove(); 
相關問題