2015-12-30 110 views
2

如何從文本中刪除具有特定類的所有DOM元素?從文本中刪除具有特定類的所有元素

var html = "<table>"+ 
"<tr>"+ 
"<td>1</td>"+ 
"<td>2</td>"+ 
"<td class='del'>3</td>"+ 
"</tr>"+ 
"<tr>"+ 
"<td>1</td>"+ 
"<td>2</td>"+ 
"<td class='del'>3</td>"+ 
"</tr>"+ 
"</table>"; 
+0

['.remove()'](http://api.jque ry.com/remove/) – Andreas

+0

你想從'html'變量中刪除它們,而不是從DOM中刪除它們? – Barmar

回答

1

您可以HTML轉換成DOM對象,刪除指定的項目,並獲得它的HTML回:

var html = "<table>" + 
 
    "<tr>" + 
 
    "<td>1</td>" + 
 
    "<td>2</td>" + 
 
    "<td class='del'>3</td>" + 
 
    "</tr>" + 
 
    "<tr>" + 
 
    "<td>1</td>" + 
 
    "<td>2</td>" + 
 
    "<td class='del'>3</td>" + 
 
    "</tr>" + 
 
    "</table>"; 
 

 
var $obj = $(html); // Create jQuery object 
 
$obj.find(".del").remove(); // Remove .del items 
 
var htmlNew = $obj[0].outerHTML; // Get the updated HTML 
 
    
 
// Demonstration purposes only: 
 
$("body").text(htmlNew);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

+1

請記住'.html()'只會返回內部html,在這種情況下將不包含'

'。 –

+0

現在看起來不錯! –

0

更好的辦法是,首先解析HTML字符串作爲DOM,然後刪除使用類名的特定兒童

var htmlString = "html string" 
var parser = new DOMParser() 
var doc = parser.parseFromString(htmlString, "text/xml"); 

$(doc).find('className').remove()//remove specific elements 

var filteredHtml=$(doc).html()//get the new html string after removing the elements 
相關問題