2011-11-06 95 views
1

我有以下HTML输出至极我不能改变:替换;标签(jQuery的)外

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

我怎样才能摆脱的;所以结果变成:

link1;链接2

这是我最好的尝试:

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

如果你有一个字符串包含'>; <',你为什么要找到'>; <'? – JJJ

+2

你能详细介绍一下你想要的结果吗? –

回答

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>的节点。然后在那个循环之后,我们移除我们在第一个地方找到的所有空锚。

+0

Tnx。得到它的工作,但只在IE9和Chrome,而不是在IE8 – iamcj