簡體   English   中英

用Javascript替換標簽內的字符串

[英]Javascript to replace a string inside a tag

<nav class="woocommerce-breadcrumb"><a href="http://domain.com/" class="home">Home</a> &gt; Product</nav>

使用jQuery或Javascript,我如何能夠將“產品”一詞重命名為其他值?

var brandname = $('.tax-product_brand h1.page-title').text();
var crumb = $('.woocommerce-breadcrumb').text();
console.log(crumb);
crumb.replace("Product", brandname);

我沒有運氣嘗試了上面

然后,您需要將字符串插入DOM。 實際上,您只是在執行字符串操作並丟棄返回值。

$('.woocommerce-breadcrumb').text(crumb.replace("Product", brandname));

編輯:如評論中所述,您應該使用.html()而不是.text() .text()將剝離所有HTML,即<a>標記。

使用.html()而不是.text() ,否則您將丟失標記:

var crumb = $('.woocommerce-breadcrumb').html();

然后將值應用回元素:

$('.woocommerce-breadcrumb').html(crumb.replace("Product", brandname));

另外,一種更簡單的方法是將“ Product”放入其自己的元素中,然后僅替換該元素的文本:

<nav class="woocommerce-breadcrumb"><a href="http://domain.com/" class="home">Home</a> &gt; <span class="item">Product</span></nav>

然后,您的jQuery就是:

$(".woocommerce-breadcrumb .item").text(brandname);

.replace返回一個新字符串,因此必須使用返回的字符串設置crumb文本。

其替換為演示。

var brandname = 'My Name';

var crumb = 'My Product';

console.log(crumb);

var d= crumb.replace("Product", brandname);

alert(d);

var brandname = $('.tax-product_brand h1.page-title').text();
$(".woocommerce-breadcrumb:contains('Product')").html(function(_, html) {
    return  html.replace(/(Product)/g, '<span>'+brandname+'</span>')
});

我可以使用以上內容獲得所需的內容,同時保持標簽的格式

避免使用自由文本。 當您執行DOM計算時,這將增加處理開銷。

很好,如果您可以使用標簽顯示最終產品/頁面名稱。 的HTML將看起來像:

  <nav class="woocommerce-breadcrumb">
        <a href="http://domain.com/" class="home">
            Home
        </a> 
        <span class="currentPage">>Product</span>

    </nav>

現在,您可以使用簡單的DOM操作來更改期望元素的text()。

var currentPage=$(".currentPage");
$(currentPage).text('> NewText');

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM