从javascript字符串中删除特定的HTML标记 [英] Remove specific HTML tag with its content from javascript string

查看:101
本文介绍了从javascript字符串中删除特定的HTML标记的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有以下字符串变量,我想从字符串中删除所有 a 标签。

  var myString =< table>< tr>< td>一些文字...< a href ='#'>标签...< / a> ;< / TD>< / TR>< /表>; 
myString + =< table>< tr>< td>一些文字...< a href ='#'>标签...< / a>< / td>< ; / TR>< /表>;
myString + =< table>< tr>< td>一些文字...< a href ='#'>标签...< / a>< / td>< ; / TR>< /表>;

我检查了这个从问题的答案中删除HTML内容组,但它适用于所有标签。

谢谢

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



//你的HTML textvar myString ='< table>< tr>< td>一些文字。 ...< a href =#> label ...< / a>< / td>< / tr>< / table>'; myString + ='< table>< tr> < t href =#>标签...< / a>< / td>< / tr>< / table>'myString + ='< >< td>< tr>< td>一些文字...< a href =#>标签...< / a>< / td>< / tr>< / table>' //创建一个新的dov containervar div = document.createElement('div'); //将你的HTML分割为div的innerHTMLdiv.innerHTML = myString; //获取所有< a>来自divvar elements的元素= div.getElementsByTagName('a'); //删除所有< a>元素[元素[0])元素[0] .parentNode.removeChild(elements [0])//将div的innerHTML转换为新的变量var repl = div.innerHTML; //显示itconsole.log(repl)/ *< table> ;< tbody>< tr>< td>< tbody>< tr>< td>< / tbody>< tr>< < td>< / tr>< / tbody>< / table>< table>< tbody>< tr>< td> < / t>< / t>< / tbody>< / table> * /

$ b

I have the following string variable and I want to remove all a tags with its content from the string.

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>";

I have checked this Remove HTML content groups from start to end of string in JavaScript question's answers but it is for all tags.

Thank you

解决方案

You should avoid parsing HTML using regex. Here is a way of removing all the <a> tags using 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>
*/

这篇关于从javascript字符串中删除特定的HTML标记的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆