2015-10-16 40 views
2

我試圖改變一個span標記 內文本的一部分,我想這:改變部分

<script> 
    $(document).ready(function(){ 
     var toreplace= $(".poly-items__price span"); 
     toreplace = toreplace.replace("change","<p>new text</p>"); 
     $(".poly-items__price span").html(toreplace); 
    }); 
</script> 

這裏是一個html:

<div class="poly-items__price"> 
    <span>do not change change</span> 
</div> 

這裏有一個例子我使用: http://jsfiddle.net/Scoobler/a9cvx/4/http://jsfiddle.net/bwhfD/

,但它不工作 你能告訴我是什麼我錯過了 感謝

回答

3

要想從$(".poly-items__price span")文本需要呼叫.text()(或.html()如果你關心裏邊跨度HTML標籤)

$(document).ready(function(){ 
    var toreplace= $(".poly-items__price span").text(); 
    toreplace = toreplace.replace("change","<p>new text</p>"); 
    $(".poly-items__price span").html(toreplace); 
}); 

如果你想全部替換「變」使用:

toreplace = toreplace.replace(/change/g,"<p>new text</p>"); 

這裏是一些小提琴http://jsfiddle.net/qsbdg4po/1

編輯

如果您有多個.poly-items__price跨度,使用每個循環:

$('.poly-items__price span').each(function() { 
    var toreplace = $(this).html(); 
    toreplace = toreplace.replace("change","<p>new text</p>"); 
    $(this).html(toreplace); 
}); 
+0

你不應該混'HTML()'和'文本()'。如果你使用'text()',設置'text()'(在這種情況下不起作用)。如果你使用'html()',設置'html()'(危險,因爲在一般情況下)。 – Amadan

+0

謝謝,但它仍然無法正常工作 –

+0

@ front-end_junior它是檢查,在小提琴:http://jsfiddle.net/qsbdg4po/1 – Sojtin

-1

試試這個

<script> 
    $(document).ready(function(){ 
    var toreplace= $(".poly-items__price span").html(); 
    toreplace = toreplace.replace("change","<p>new text</p>"); 
    $(".poly-items__price span").html(toreplace); 
    }); 
</script> 
<div class="poly-items__price"> 
<span>do not change change</span> 
</div> 
2

您也可以通過一個功能jQuery.html

$(document).ready(function(){ 
 
     $(".poly-items__price span").html(function() { 
 
       return $(this).html().replace("change","<p>new text</p>"); 
 
     }); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="poly-items__price"> 
 
    <span>do not change change</span> 
 
</div>

1

試試這個

可以ALSE使用$(toreplace).find("span").html(str);更換跨度 的內容

$(document).ready(function(){ 
 
     var toreplace= $(".poly-items__price"); 
 
     var str = $(toreplace).find("span").text().replace("change","<p>new text</p>"); 
 
    $(toreplace).find("span").text(str); 
 
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="poly-items__price"> 
 
    <span>do not change</span> 
 
</div>