gpt4 book ai didi

jquery - 需要提取特定的文本节点以使用 JQuery 隐藏或删除它

转载 作者:行者123 更新时间:2023-12-01 00:11:44 24 4
gpt4 key购买 nike

我在 WordPress 上有一个博客,我可以控制该博客来编辑和格式化 RSS 提要内容。我有另一个网站,我想在其中显示我的博客帖子的摘录,然后直接链接到该博客以获取完整帖子。我收到的提要很好,只是显示了一些不需要的未标记文本,并且因为它没有 HTML 标记,所以我无法使用 CSS 来隐藏它。 (我很高兴我还需要调试提要以及可能的博客内容,因为我使用的提要代码不会在我设置的任何其他博客上给出此错误,但这是一个单独的问题)。

这是从 feed 生成的 HTML 格式:

        <li class="rss-item">
<a class="rss-item" href="http://myblog.com/post-title">Post Title</a>
<br>
http://myblog.com/post-title/Post Title <!-- this line I want to remove -->
<div class="thumbnail">
<a href="#">
<img src="thumbnail.jpg">
</a>
</div>
<div class="excerpt">Excerpt text</div>
<a href="http://myblog.com/post-title">Continue reading...</a>
</li>

我希望提取未标记文本的文本节点(在页面上显示 URL 和帖子标题),然后使用 JQuery 将其删除,或者添加一些 span 标记并使用 CSS 隐藏它。我的 JQuery 知识非常有限,我尝试编辑在网上找到的各种代码,但没有成功。有人可以帮忙吗?

最佳答案

var tn = $('a.rss-item[href="http://myblog.com/post-title"] + br')[0].nextSibling;

tn.parentNode.removeChild( tn );

示例: http://jsfiddle.net/BZ5Tx/

这会找到 br 元素,其前一个兄弟元素是具有 rss-item 类和 href http 的 a 元素://myblog.com/post-title.

然后它提取 DOM 元素,获取应该是文本节点的 nextSibling,并将其存储在变量中。

然后从文本节点中获取parentNode并使用removeChild删除文本节点。

<小时/>

如果这是具有不同网址的重复模式,您可以尝试使用此选择器:

$('a.rss-item[href] + br');

...并使用循环:

$('a.rss-item[href] + br').each(function() {

var tn = this.nextSibling;

tn.parentNode.removeChild( tn );

});
<小时/>

正如 @Anurag 所指出的,最好在每个位置执行循环,删除文本节点直到到达非文本节点,以防存在相邻文本节点。

$('a.rss-item[href] + br').each(function() {

var tn = this;

while( tn = tn.nextSibling ) {
if( tn.nodeType === 3 ) {
tn.parentNode.removeChild( tn );
}
}

});

关于jquery - 需要提取特定的文本节点以使用 JQuery 隐藏或删除它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6486987/

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