2 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
您應(yīng)該選擇 allp和atags inbody而不是 using *which 甚至?xí)x擇script標(biāo)簽本身。此外,刪除</a>關(guān)閉任何錨標(biāo)記的那個(gè)。要不修改錨標(biāo)記的 HTML,您可以在替換之前檢查當(dāng)前元素是否沒(méi)有子元素。
var regex = /(apples|oranges)/g;
$('body a, body p').each(function() {
var $this = $(this);
var text = $this.text();
if (text.match(regex) && $this.children().length===0) {
$this.html(
$this.html().replace(regex, '<span style="background: #fa7373;">$1</span>')
);
}
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<p>
I bought some apples.
</p>
<p>
<a href="oranges.html">I bought some oranges.</a>
</p>
<p>
I bought some pears.
</p>

TA貢獻(xiàn)1843條經(jīng)驗(yàn) 獲得超7個(gè)贊
</a>從您的代碼中刪除。這</a>是關(guān)閉任何錨標(biāo)記。
var regex = /(apples|oranges)/g;
$('*').each(function() {
var $this = $(this);
var text = $this.text();
if (regex.test(text)) {
$this.html(
$this.html().replace(regex, '<mark>$1</mark>')
);
}
});
添加回答
舉報(bào)