使用javascript字符串中的内容删除特定的HTML标记

Gul*_*ari 2 html javascript dom

我有以下字符串变量,我想a从字符串中删除所有标签及其内容.

var myString = "<table><tr><td>Some text ...<a href='#'>label...</a></td></tr></table>";
myString += "<table><tr><td>Some text ...<a href='#'>label...</a></td></tr></table>";
myString += "<table><tr><td>Some text ...<a href='#'>label...</a></td></tr></table>";
Run Code Online (Sandbox Code Playgroud)

我已经检查了这个在JavaScript问题的答案中从字符串的开头到结尾删除HTML内容组,但它适用于所有标签.

谢谢

Nis*_*arg 9

这是代码。正则表达式/<a.*>.*?<\/a>/ig非常适合您的数据。

var myString = "<table><tr><td>Some text ...<a href='#'>label...</a></td></tr></table>";
myString += "<table><tr><td>Some text ...<a href='#'>label...</a></td></tr></table>";
myString += "<table><tr><td>Some text ...<a href='#'>label...</a></td></tr></table>";

console.log(myString);

var anchorTagsRemoved = myString.replace(/<a.*?>.*?<\/a>/ig,'');
console.log(anchorTagsRemoved);
Run Code Online (Sandbox Code Playgroud)

  • 要在跨多行的较大标签上使用,请添加新行检查。html.replace(/&lt;header.*?&gt;(.|\n|\r)*?&lt;\/header&gt;/ig,''); (2认同)

anu*_*ava 7

您应该避免使用正则表达式解析HTML.以下是使用以下方法删除所有<a>标记的方法DOM:

// your HTML text
var myString = '<table><tr><td>Some text ...<a href="#">label...</a></td></tr></table>';
myString += '<table><tr><td>Some text ...<a href="#">label...</a></td></tr></table>'
myString += '<table><tr><td>Some text ...<a href="#">label...</a></td></tr></table>'

// create a new dov container
var div = document.createElement('div');

// assing your HTML to div's innerHTML
div.innerHTML = myString;

// get all <a> elements from div
var elements = div.getElementsByTagName('a');

// remove all <a> elements
while (elements[0])
   elements[0].parentNode.removeChild(elements[0])

// get div's innerHTML into a new variable
var repl = div.innerHTML;

// display it
console.log(repl)

/*
<table><tbody><tr><td>Some text ...</td></tr></tbody></table>
<table><tbody><tr><td>Some text ...</td></tr></tbody></table>
<table><tbody><tr><td>Some text ...</td></tr></tbody></table>
*/
Run Code Online (Sandbox Code Playgroud)