更改span jquery中的部分文本

时间:2015-10-16 09:30:02

标签: javascript jquery html css

我尝试更改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/

但它不起作用 你能告诉我我错过了什么吗? 感谢

4 个答案:

答案 0 :(得分: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);
});

答案 1 :(得分:2)

您还可以将函数传递给jQuery.html

$config['sess_save_path'] = 'writable absolute path';
    $(document).ready(function(){
        $(".poly-items__price span").html(function() {
              return $(this).html().replace("change","<p>new text</p>");
        });
    });

答案 2 :(得分:1)

试试这个

您还可以使用$(toreplace).find("span").html(str);替换span的内容

&#13;
&#13;
 $(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);
    });
&#13;
<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>
&#13;
&#13;
&#13;

答案 3 :(得分:-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>