gpt4 book ai didi

javascript - 删除不需要的标签(如果位于文本之前)

转载 作者:行者123 更新时间:2023-12-02 15:28:11 25 4
gpt4 key购买 nike

我有以下代码。 Variable有一个字符串。我想删除<img>标签,<a><br>标记(如果它位于任何文本之前)。

var content='<div class="dir"><a href="/home"><img src="/img.png"/></a><p><br><a class="foo" href="/contact">This</a> is content</p></div>';
content.replace(/<img[^>]*>/g,"");

我尝试删除 <img>标签,但它会删除所有标签,我只是在文本之前删除所有不需要的标签(和
)。其次<a>标记为 class foo不应删除,因为它有一些文本。

它返回:

<div class="dir"><a href="/home"></a><p><br><a class="foo" href='/contact'>This</a> is content</p></div>

简而言之,我想通过 br 删除文本之前的所有图像以及所有不需要的空格。和不需要的链接。

最佳答案

如果我理解正确的话,这就是你想要做的。

<div><p><br><img><a class="foo" href="/contact">This</a> is content</p></div>

如果类foo其中包含任何文本,那么您希望内容为:

<div><p><a class="foo" href="/contact">This</a> is content</p></div>

没有 sibling <br> , <img> ,或<p>标签。

如果这是正确的,那么如果您得到var content,那么这个jquery解决方案就可以工作。来自 DOM:

$('.foo').contents().each(function(){
if(this.nodeType == 3){
$(this).parent().siblings("br, img, p").remove();
}
});

这将循环遍历所有 foo 的内容页面上的类...检查 nodeType 是否为 3(这是文本节点的值)...然后获取文本节点父级的兄弟节点 <br> , <img> ,或<p>标记标签并删除它们。

JSBin Example

希望这就是您正在寻找的内容。

关于javascript - 删除不需要的标签(如果位于文本之前),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33528144/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com