亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何使用 JavaScript 突出顯示包含數組中關鍵字的所有鏈接

如何使用 JavaScript 突出顯示包含數組中關鍵字的所有鏈接

忽然笑 2022-10-27 10:55:28
我正在網頁中搜索數組中的關鍵字。此代碼通過將文本替換為突出顯示文本的標簽來工作,但是當它找到作為鏈接的關鍵字時,它會破壞它們,因為它在標簽中放置了一個<span>標簽<a>。我試圖通過將 $this.html() 更改為 $this.parent.html() 來引用父元素,但這不起作用。這是 JSFiddle:https ://jsfiddle.net/uzfsjqyr/1/我會很感激一些幫助,好嗎?var regex = /(Apples|oranges)/g;$('*').each(function() {    var $this = $(this);    var text = $this.text();    if (regex.test(text)) {        $this.html(            $this.html().replace(regex, '</a><span style="background: #fa7373;">$1</span>')        );    }});
查看完整描述

2 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

您應該選擇 allp和atags inbody而不是 using *which 甚至會選擇script標簽本身。此外,刪除</a>關閉任何錨標記的那個。要不修改錨標記的 HTML,您可以在替換之前檢查當前元素是否沒有子元素。


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>


查看完整回答
反對 回復 2022-10-27
?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

</a>從您的代碼中刪除。這</a>是關閉任何錨標記。


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>')

        );

    }

});


查看完整回答
反對 回復 2022-10-27
  • 2 回答
  • 0 關注
  • 102 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號