替换元素中的文本

时间:2014-06-30 08:27:49

标签: javascript jquery regex

我有以下内容:

<li class="product_promo promo_code_227598" id="discount_14902941">
    <img src="/wcsstore/ConsumerDirectStorefrontAssetStore/images/discount.gif" alt="" align="middle">
    -2-for-10-
</li>

我想只替换文本的第一个和最后一个字符。

我尝试了以下内容,但它取代了元素的内容:

$(this).text($(this).text().replace(/^-+|-+$/g,''));

我也尝试了以下内容,但第一个破折号没有被替换。

$(this).html($(this).html().replace(/^-+|-+$/g,''));

3 个答案:

答案 0 :(得分:1)

var len = $.trim($("li").text());

var res = len.slice(1,len.length-1);

$("li").contents().last()[0].textContent = res; // this way you can append the text without affcet the html tag

DEMO

答案 1 :(得分:0)

试试这个:

$(this).text(function(i, v){
  return v.replace(/^-+|-+$/g,'');
});

请注意:这仅适用于jQuery 1.4及更高版本。

答案 2 :(得分:0)

尝试

$(this).html($(this).html().replace(/^[-+]|[-+]$/g,''));