jquery用一个跨度替换多个跨度

时间:2017-04-06 08:17:55

标签: javascript jquery html

例如,我有一个像这样的字符串文本

<span> You</span> <span>have</span> <span>20</span> <span>minutes</span><span> to</span><span> <span>complete</span><span> each</span><span> test</span>

所有单词都包含在span标签中。 但是现在我需要用span替换一个字符串。例如,如果我的字符串是:

You have

我需要替换

<span> You</span> <span>have</span>

<span>You have</span>

在文中。

非常重要,我要替换的字符串是动态的(可以是“完成”或“每个测试”),所以我的最终文本将是

<span> You have</span><span>20</span> <span>minutes</span><span> to</span><span> complete</span><span> each</span><span> test</span>.

感谢您的回答

3 个答案:

答案 0 :(得分:2)

您只需使用jQuery选择span,然后使用其text并删除所有内容并将文字追加到新的范围内。

var txt = $('span').text(); // get the text
$('span').remove(); // remove them
$('body').append('<span>' + text + '</span>'); // append a new one with the gotten text

如果您只需要前n个跨度,则可以

var txt = $('span:lt(n-1)').text(); // of course don't type n-1 as it is. Calculate!

答案 1 :(得分:0)

我认为这样可以正常使用

var pspan=null;
var arr=[];
$( "span" ).each(function( index ) {
  if(index==0) pspan=$(this);   
  arr.push($.trim($(this).text()));
});
pspan.text(arr.join(' '));

答案 2 :(得分:0)

做这样的事情:

var html = '<span> You have</span><span>20</span> <span>minutes</span><span> to</span><span> complete</span><span> each</span><span> test</span>.';
var newHtml = "";
$(html).find("span").each(function (index, value) {
    newHtml += value;
});
newHtml = "<span>" + newHtml + "</span>";

就是这样; - )