gpt4 book ai didi

javascript - 如何搜索 HTML 的每一部分

转载 作者:搜寻专家 更新时间:2023-10-31 08:30:28 24 4
gpt4 key购买 nike

我试图忽略部分 HTML 中的任何链接,并获取任何没有链接的内容来执行我的功能。

我目前拥有的是:

$(document).ready(function() {
// search through paragraphs
$("p").each(function() {
// if there is not a link
if (!$(this).find('a').hasClass('external-link')) {
// do my function
}
})
})

我遇到的问题是,如果一行中有一个链接,而且我想在同一行中捕获某些内容,则它不起作用,因为它会忽略整行。

这里是工作 JSFiddle 的链接,希望能让您了解我正在尝试做什么。

提前致谢


编辑:

我可能对这个问题的措辞有些困惑。

我想要实现的一个例子是:

<p>Link to ignore: <a href="http://www.bbc.co.uk" class="external-link" rel="nofollow">news</a>
Link to create: news </p>

我的代码将搜索 <p> “新闻”标签,然后创建指向该网站的链接。但是,我不想在现有链接之上创建链接。我当前的代码会忽略 <p> 中的所有内容标签,因为那里已经有一个链接。

最佳答案

这是一种忽略 anchor 的方法,因此您不会在现有 anchor 内创建新 anchor 。
这仅针对文本节点

$(document).ready(function () {
$("p").contents().each(function(_, node) {
if ( node.nodeType && node.nodeType === 3 ) {
var regex = /(news)/g;
var value = node.nodeValue.replace(regex, '<a href="https://www.bbc.co.uk/$1">$$&</a>');
if (value.match(regex)) {
var wrap = document.createElement('span');
wrap.innerHTML = value
node.parentNode.insertBefore(wrap, node);
node.parentNode.removeChild(node);
}
}
});
});

FIDDLE

要保留美元符号,您必须执行 $$,因为美元符号在正则表达式中具有特殊含义。

关于javascript - 如何搜索 HTML 的每一部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26107993/

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