2015-12-30 118 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 
相关问题