2016-07-30 81 views
0

內如何與其他元素替換文本股利

<strong class="product-detail-final-price"> 
    <input type="hidden" name="priceId" value="2353">   
    <meta itemprop="price" content="3339"> 
    <meta itemprop="priceCurrency" content="CZK"> 
    <link itemprop="itemCondition" href="https://schema.org/NewCondition"> 
    <meta itemprop="warranty" content="20 let"> 

    3 339 Kč 
    <span class="pr-list-unit"> 
    /balení 
    </span> 
</strong> 

如何編輯文本3 339 Kč替換DIV中的文本?文字是動態的。不允許插入<span>

+0

歡迎來到堆棧溢出!學習[問]和[mcve]。這只是一個5分鐘的閱讀,並會節省你的時間。我們想要幫助,但我們需要一些背景。請[編輯]你的問題來反映它。你還嘗試了什麼?這聽起來有點像家庭作業問題。我們不在SO編寫代碼。 –

回答

0

使用meta標記(在nextSibling屬性的幫助下)獲取文本節點,並通過textContent屬性更新內容。 Attribute equals selector可用於選擇元標記。

$('meta[itemprop="warranty"]')[0].nextSibling.textContent = 'New content'; 
 

 
// or 
 

 
document.querySelector('meta[itemprop="warranty"]').nextSibling.textContent
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<strong class="product-detail-final-price"> 
 
    <input type="hidden" name="priceId" value="2353">   
 
    <meta itemprop="price" content="3339"> 
 
    <meta itemprop="priceCurrency" content="CZK"> 
 
    <link itemprop="itemCondition" href="https://schema.org/NewCondition"> 
 
    <meta itemprop="warranty" content="20 let"> 
 

 
    **3 339 Kč** 
 
    <span class="pr-list-unit"> 
 
/balení 
 
    </span> 
 
</strong>

1

只要你想獲取的值總是在容器內的第一個孩子textNode,那麼你可以使用filter().get(0),像這樣:

var newPrice = '1 234 Kč'; 
 
$('.product-detail-final-price').contents().filter(function() { 
 
    return this.nodeType == 3 && this.textContent.trim(); 
 
}).get(0).textContent = newPrice;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<strong class="product-detail-final-price"> 
 
    <input type="hidden" name="priceId" value="2353">   
 
    <meta itemprop="price" content="3339"> 
 
    <meta itemprop="priceCurrency" content="CZK"> 
 
    <link itemprop="itemCondition" href="https://schema.org/NewCondition"> 
 
    <meta itemprop="warranty" content="20 let"> 
 

 
    3 339 Kč 
 
    <span class="pr-list-unit"> 
 
     /balení 
 
    </span> 
 
</strong>