在Javascript中删除span后连接字符串?

在Javascript中删除span后连接字符串?,javascript,html,ios,uiwebview,Javascript,Html,Ios,Uiwebview,我有一个函数,可以删除我以前在xhtml中插入的跨距 我的问题是,当它删除跨度时,它不会将它包含的字符串与其周围的字符串连接起来 例如,我从以下几点开始: <p class="s6"> <span class="myClass">The</span> " quick brown fox jumps over the lazy dog." </p> 我注意到,如果我保存并重新打开xhtml文件,它会变成我想要的版本,但这看起来相当粗糙。由于我通常

我有一个函数,可以删除我以前在xhtml中插入的跨距

我的问题是,当它删除跨度时,它不会将它包含的字符串与其周围的字符串连接起来

例如,我从以下几点开始:

<p class="s6">
<span class="myClass">The</span>
" quick brown fox jumps over the lazy dog." 
</p>
我注意到,如果我保存并重新打开xhtml文件,它会变成我想要的版本,但这看起来相当粗糙。由于我通常不是一个javascript程序员,我不知道这是否是正常的行为,或者处理它的适当方式是什么

代码中的createTextNode看起来可疑,但我找不到任何其他有用的东西来替换它

我不喜欢它目前的工作方式的原因是它影响了我自由选择文本的能力

这发生在iOS应用程序的UIWebview中。Javascript而不是JQuery


谢谢你可以试试这个正则表达式

/<span[^\>]+>|<\/?span>|\r?\n|\r|\s{2,}|\t{2,}/gi
简单用法:

// JavaScript
window.onload = function(){
    document.getElementById("button").onclick = function(){
        var html = document.body.innerHTML;
        html = html.replace(/<span[^\>]+>|<\/?span>|\r?\n|\r|\s{2,}|\t{2,}/gi, '');
        document.body.innerHTML = html;
    };
};

<!-- HTML -->
<body>
    <p class="s6">
        <span class="myClass">The</span>
        quick brown fox jumps over the lazy dog.
    </p>
    <p class="s6">
        <span class="myClass">The</span>
        quick brown fox jumps over the lazy <span style="font-weight:bold;">dog</span>.
    </p>
    <input type="button" name="button" id="button" value="Remove SPANs">
</body>

p元素包含一个文本节点,在span之后有一个换行符,必须删除。您是如何创建spansToRemove的?spansToRemove是一个数组,我已将相应的span元素推到该数组上,实际上它的长度只有1,但未来可能会有更多我只是想知道你是否有现场收藏。getElementsByTagName和GetElementsByCassName方法返回一个活动的,与querySelectorAll不同,querySelectorAll返回一个静态集合。我使用document.GetElementsByCassNameMyClass获取所有跨距,然后使用selection.getRangeAt0将特定范围内的跨距添加到SpanStoreMovehm。。“你是那些还没见过的人之一吗?”蒂姆我发誓我见过;我只是喜欢正则表达式,当解析器失败时,我经常使用它们。事实上,我知道那篇文章里写的所有东西,但是。。。爱上regex的神秘:好吧,不幸的是,评论被锁定在那篇文章中,你的评论将是新的煤油。
spansToRemove[i].parentNode.replaceChild(document.createTextNode(spansToRemove[i].innerHTML), spansToRemove[i]);
/<span[^\>]+>|<\/?span>|\r?\n|\r|\s{2,}|\t{2,}/gi
// JavaScript
window.onload = function(){
    document.getElementById("button").onclick = function(){
        var html = document.body.innerHTML;
        html = html.replace(/<span[^\>]+>|<\/?span>|\r?\n|\r|\s{2,}|\t{2,}/gi, '');
        document.body.innerHTML = html;
    };
};

<!-- HTML -->
<body>
    <p class="s6">
        <span class="myClass">The</span>
        quick brown fox jumps over the lazy dog.
    </p>
    <p class="s6">
        <span class="myClass">The</span>
        quick brown fox jumps over the lazy <span style="font-weight:bold;">dog</span>.
    </p>
    <input type="button" name="button" id="button" value="Remove SPANs">
</body>