2016-07-30 79 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>