替换;标签之外(jquery)

时间:2011-11-06 11:29:21

标签: javascript jquery html replace

我有以下HTML输出,我无法更改:

<td class="test"><a>link1</a>;<a></a>;<a></a>;<a>link</a><td>

我怎样才能摆脱;结果变成了:

LINK1; LINK2

这是我最好的尝试:

var test = new String($(this).html());
var tmp = ">; <A><"
test = test.replace(/tmp/g,"><A><");

1 个答案:

答案 0 :(得分:3)

您可以浏览:empty <a>个元素,并将它们与循环中的下一个兄弟";"文本节点一起删除,如下所示:

$(".test a:empty").each(function() {
    if(this.nextSibling.nodeValue == ";") 
        this.parentNode.removeChild(this.nextSibling);
}).remove();

You can test it out here

这只是获取空锚,并且在从DOM中删除它们之前,循环查看它们的尾随文本节点以查看它们是否在内容中明确";" ...如果是这种情况那么我们从父<td>中删除该文本节点。然后在那个循环之后,我们删除了我们在第一时间找到的所有空锚。