0

我有一个包含一些 html 和文本的 div(html 是动态添加的)结构会像

    <div id="contentContainer">
&nbsp; <span>ProductA</span> ; <span>ProductB</span>; prod
</div> 

我想在提交按钮单击时从 div contentContainer 的内部 html 中删除最后一个不完整的文本(产品)

为此,我使用了正则表达式 returnText.replace(/\w+$/, ''); 它工作正常,因为我无法将文本修剪到';'的最后一个索引

但不是问题是当用户在不完整的文本中放入一些特殊字符时,正则表达式失败

那么是否有任何解决方案可以将最后附加的文本修剪为 div 的内部 html,或者我可以将文本修剪到最后一个 html 标记并放置;之后

请提出任何解决方案

4

2 回答 2

2

如果您使用的是 jquery,您可以提取所有 span 元素并用它们替换 innerHTML。

$("#contentContainer").html( $("#contentContainer span") );

那应该清理休息的东西。也许不是最好的,但我认为它比内容上的正则表达式更好。

于 2012-04-15T12:22:02.120 回答
1

解决方案查看 DIV 中的最后一个 DOM 节点,如果是文本节点,则将文本更改为分号

var lastNode = $('#contentContainer').contents().last()[0]

if (lastNode.nodeType == 3) {
    lastNode.textContent=';'
}

演示:http: //jsfiddle.net/EhcLh/

于 2012-04-15T12:39:38.237 回答