我试图找出是否有可能用锚标记包装字符串的所有实例。
基本上,我们想在我们的网站上找到myBrand或的任何实例,myBrand.com并将它们包装在锚点中,例如<a href="/">myBrand</a>或<a href="/">myBrand.com</a>。
但是,无论它们在我页面的各个元素中的埋深有多深,我都希望能够找到此实例的所有实例,并查看它们是否已链接,这就是我遇到的问题。
编辑
我已将代码段编辑为现在的内容,但仍然遇到困难:
document.querySelectorAll('body').forEach(function(el){
var text = el.innerHTML.match(/myBrand/g);
console.log(text.parentElement); // how do i get the parent?
if(isAnchor(text.parentElement)){
//
}else{
var newtext = el.innerHTML.replace(/myBrand/g, '<a href="/">myBrand</a>');
el.innerHTML = newtext;
}
});
function isAnchor(str){
return /^\<a.*\>.*\<\/a\>/i.test(str);
}
<body>
myBrand
<h1>myBrand.com</h1>
<p>This is a div that mentions myBrand</p>
<table>
<thead>
<tr>
<td>This is myBrand's table header</td>
</tr>
</thead>
<tbody>
<tr>
<td>myBrand.com</td>
</tr>
</tbody>
</table>
<a href="/">myBrand.com</a>
</body>
开心每一天1111
相关分类