繁体   English   中英

如何删除jQuery中的特定标签?

[英]How to remove specific tag in jquery?

例:

html = '<font><a>Test Message</a></font>';

html = html.find('font').remove();

预期输出:

<a>Test Message</a>

实际上,此代码无法正常工作。 请帮助我解决我的问题。

当您拥有包含HTML标记的字符串时 ,可以使用字符串替换功能删除不需要的元素。

要仅删除<font></font> ,可以在此处使用正则表达式。

 html = '<font><a>Test Message</a></font>'; html = html.replace(/<\\/?font>/g, ''); document.getElementById('result').innerText = html; console.log(html); 
 <pre id="result"></pre> 

正则表达式说明:

/<\\/?font>/g匹配<font></font>字符串。 \\/? 将匹配零或一/

警告: regex中的g标志将替换字符串中的所有匹配项。 因此,如果字符串包含多个font元素,则所有font元素都将被删除。

注意:使用jQuery的remove()还将删除<font>的后代。


您还可以如下使用jQuery的html()方法:

 html = '<font><a>Test Message</a> </font>'; html = $(html).html(); // To show result on page $(document.body).text(html); console.log(html); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 

使用jquery unwrap删除a标记font的父代,然后将其附加到动态创建的div并调用html方法以获取结果try:

  html =  $('<div>').append($(html).find('a').unwrap()).html();

https://jsfiddle.net/p0acop2k/

要删除元素和内容,主要应使用两种jQuery方法:

  • $(html).find(selector).remove() -删除选定的元素(及其子元素)

  • $(html).find(selector).empty() -从选定元素中删除子元素

如果您需要使用正确选择器的更详细答案,请提供更详细的代码。

链接到jQuery的removeempty方法。

你可以这样使用

$(html).find('font').remove();

如@Tushar注释:注意:这还将删除<font>内的anchor元素,从而产生空字符串,

所以你可以使用

html = '<font><a>Test Message</a></font>';
new_html = $(html).find('a').clone(); // this is just an anchor
// now your new html is <a>Test Message</a>
html = $('<font><a>Test Message</a></font>');
html.find('font').contents().unwrap();
console.log(html.html());

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM