Javascript jquery用一个span替换多个span

Javascript jquery用一个span替换多个span,javascript,jquery,html,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>

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

<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> You</span> <span>have</span>
你有

你有
在文本中

非常重要的是,我要替换的字符串是动态的(可以是“to complete”,也可以是“each test”),所以我的最终文本将是

<span> You have</span><span>20</span> <span>minutes</span><span> to</span><span> complete</span><span> each</span><span> test</span>.
您有20分钟的时间完成每个测试。

感谢您的回答

您可以使用jQuery选择
span
,然后使用其
文本
,删除所有文本并将文本附加到新span

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

我想这很管用

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

就这样做吧:

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>";
var html='您有20分钟的时间完成每个测试';
var newHtml=“”;
$(html).find(“span”).each(函数(索引、值){
newHtml+=值;
});
newHtml=“”+newHtml+”;

就这样;-)

在格式化问题中的代码时请小心。在我编辑它之前,这没有什么意义。你是随机投反对票吗?或者你有任何理由自动否决投票吗?@SrAxi你是说我吗?如果是的话,我没有投反对票。虽然这两个答案都不会产生OP指定的输出,所以否决票是值得的。请正确设置问题的格式。@Rorymcrossan不是你。作品的主人。答案一公布,他们就收到了反对票。我认为至少应该对他们被否决的原因发表评论。在解密问题后,我认为这应该是解决方案。我认为这不会是,因为它取代了所有跨度的文本。它不加入
拥有的
跨度-这就是输出应该是的。DV不是我的FYI@RoryMcCrossan正当我没看到。我从来没说过你投了反对票,我是OP的老板。我只是不喜欢“insta”在没有任何理由的情况下被否决。@RoryMcCrossan haha DV曾经让我很恼火,但现在它已经成了一件平常的事了。:)
var txt = $('span:lt(n-1)').text(); // of course don't type n-1 as it is. Calculate!
var pspan=null;
var arr=[];
$( "span" ).each(function( index ) {
  if(index==0) pspan=$(this);   
  arr.push($.trim($(this).text()));
});
pspan.text(arr.join(' '));
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>";