2011-07-07 47 views
0

我試圖完全從DOM李元素中刪除,它的內容包括它的複選框輸入,但沒有成功。如何在ajax返回時完全從dom中刪除?

我有以下函數被調用Ajax回調之後,卻沒有刪除內容的元素它自己和孩子的(readyState的== 4):

function removepostview(str){ 

    document.getElementById('post'+str).innerHTML = ""; 
} 

樣品李

<li id="post58">Some Text Here<input type="checkbox" id ="postchk58" value="58" onclick="deletepost(this.value);" /></li> 

請注意,在這種情況下,沒有明確指定UL。在正常標記的情況下,LI通常會在所有其他情況下進入UL/OL。

+0

感謝大家的快速解答。這個社區很棒! – Codex73

回答

1

它實際上是可以這樣做,而不會導致到JS庫:)

var e= document.getElementById('post'+str); 
e.parentNode.removeChild(e); 
+0

完美地工作。非常感謝你。 – Codex73

1

有一個remove()方法在jQuery的只是這樣一個任務:

$('#post'+str).remove(); 
+0

你應該使用一個octothorpe來通過它的id來選擇元素。 – jncraton

+0

糟糕。這會教我快速回答! –

1

你的標籤包括jQuery的,那麼爲什麼不試試這個:

$('#post' + str).remove(); 
1

使用jQuery:

function removepostview(str){ 
    $('#post'+str).remove(); 
} 
1

試試這個:

var d = document.getElementById('myUL'); 
var oldLI = document.getElementById('post'+str); 
d.removeChild(oldLI); 
+0

爲什麼downvote? – Mrchief

+0

在使用樣本中,沒有UL存在,因此它不起作用。 'parentNode'由@Contra建議選擇正確的項目。當此行更改爲「oldLI.parentNode.removeChild(oldLI);」時,您的代碼也可以正常工作。非常感謝你的幫助和回答。 – Codex73

+0

LI元素通常在UL(或OL)中。 – Mrchief

0
function removepostview(str){ 
    var postLi = document.getElementById('post'+str); 
    document.removeChild(postLi); 
} 
+0

謝謝您的回答,但是這會返回錯誤:未找到節點「code:」8 – Codex73