2012-06-16 29 views
0

我有一個實現動態創建單選按鈕的實現,實際上所有的字段和值都相互依賴,如父 - 子級子類等。我能夠刪除按鈕,但在Firefox使用innerHtml,但在IE瀏覽器它沒有奏效。對於IE瀏覽器,我得到了一個不同的代碼,但是在我粘貼生成它並刪除它的代碼時,它也無法正常工作。問題在IE中使用JavaScript去除單選按鈕

var idToUpdate = "radioID"; 
var nameToUpdate = "radioName"; 
var labelToUpdate = "labelText"; 

var tbody = document.createElement('tbody'); 
var row = document.createElement("tr") 
var data1 = document.createElement("td") 
var newRadio = document.createElement("input"); 
newRadio.type = "radio"; 
newRadio.id = idToUpdate; 
newRadio.name = nameToUpdate; 
newRadio.value = labelToUpdate; 
if (defUpdater == 1) 
    newRadio.setAttribute('checked', 'checked'); 
newRadio.setAttribute("onclick", "javascript:dependentFieldsValue('" + idToUpdate + "');"); 
var data11 = document.createElement("td") 
var newLabel = document.createElement("label"); 
newLabel.htmlFor = idToUpdate; 
newLabel.id = idToUpdate; 
newLabel.appendChild(document.createTextNode(labelToUpdate)); 
tbody.appendChild(row); 
row.appendChild(data1); 
data1.appendChild(newRadio); 
row.appendChild(data11); 
data11.appendChild(newLabel); 
Node1.appendChild(row); 
defUpdater = 0; 

For last in last用於刪除收音機,我們只是使用表ID獲取htmlelemnt並將innerHTML設置爲=「」。

for (var i = 0; i < len; i++) { 
    var node = documnet.getElemtsById("tableID"); // every button group have table and table is havin id. 
    Node.childNodes[i].innerHTML = ""; /// works for firefox// works fine 
    //Node.childNodes[i].Node.removeChild(Node.childNodes[i]);// works for IE but not properly 
} 

請建議。

+0

不要使用標記來格式化你的代碼,而不是其選中,然後點擊'{}'圖標。好像你在'var node = documnet.getElemtsById(「tableID」);'中有2個拼寫錯誤,'(也不確定是否是這種情況),'table','thead','tbody'和'tr'元素' IE中的innerHTML屬性是隻讀的。 –

+0

現在全粗體代碼,好的。我的眼睛在流血,我完成了整個晚上。 –

+0

你的代碼中全是有錯別字:documnet應該是文檔,節點和Node是不一樣的; javascipt區分大小寫。 tbh,這是一團糟。 – Tom

回答

0

我會用這樣的結構:

var table = documnet.getElemtsById("tableID"); 
for (var i = 0; i < len; i++) { 
    var tr = table.childNodes[i]; 
    tr.parentNode.removeChild(tr); 
} 
+0

感謝vaclav,但仍然問題是與IE,當你說tr.ParentNode.removeChild(tr)你的意思是tr.table.removeChild(tr)? – durgesh

+0

感謝vaclav,但仍然問題是與IE,當你說tr.ParentNode.removeChild(tr)你的意思,tr.table.removeChild(tr)?可以somone請讓我知道應用CSS動態生成代碼的方式。我試過newRadio.class =「css class」。我需要保持按鈕之間的差距。 – durgesh

+0

ECMAscript區分大小寫,所以'ParentNode'不等於'parentNode'。是的,通過'tr.parentNode.removeChild(tr)'我的意思是'table.removeChild(tr)'。當我想從DOM中刪除'ele'元素時,我使用'ele.parentNode.removeChild(ele)',所以我不需要找到它的父元素,只需要元素本身。 –