2011-11-06 127 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