在元素中查找文本字符串并在其周圍包裹一些span標(biāo)記我想在元素中找到一串文本,并圍繞它包裹一些span標(biāo)簽。例如從:<h2>We have cows on our farm</h2>至:<h2>We have <span class='smallcaps'>cows</span> on our farm</h2>我試過了:$("h2:contains('cow')").each(function() {
$(this).text().wrap("<span class='smallcaps'></span>");});但這只包裝整個(gè)包含h2標(biāo)簽。
3 回答

慕后森
TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超5個(gè)贊
另一種方法,按關(guān)鍵字拆分并加入更新后的html。
$("h2:contains('cow')").html(function(_, html) { return html.split('cow').join("<span class='smallcaps'>cow</span>");});
注意:我沒有對(duì)此進(jìn)行過測(cè)試,但我認(rèn)為這會(huì)比進(jìn)行替換更糟糕,但是我會(huì)將其包含在內(nèi)以供參考之用

慕標(biāo)5832272
TA貢獻(xiàn)1966條經(jīng)驗(yàn) 獲得超4個(gè)贊
這是@ undefined的答案的變體,它循環(huán)遍歷一系列項(xiàng)目:
var barnyardArray = [ 'cow', 'horse', 'chicken', 'hog', 'goat', 'goose', 'duck', 'llama'];$.each(barnyardArray, function (index, value) { $("p:contains(" + value + ")").html(function (_, html) { var regex = new RegExp(value, 'g'); return html.replace(regex, '<span class="smallcaps">' + value + '</span>'); });});
添加回答
舉報(bào)
0/150
提交
取消