2012-07-12 83 views
-1

我試着用文字問題有標籤的innerHTML在JavaScript

var label_count2 = document.createElement("label");    
     label_count2.setAttribute("id", "label_count2");  
     label_count2.style.textAlign = "right"; 
     label_count2.style.border = "none"; 

gradient_div.appendChild(label_count2);    
self.parent.appendChild(gradient_div); 

updateText : function (text){ 

     document.getElementById("label_count2").innerHTML = count; 

    }, 

更新標籤,當我試圖打電話updateText()在屏幕上的數值未發生變化。

我檢查它在調試器中,我看到的是,價值是正確的。

我試圖改變innerHTMLinnerText,它也沒有工作。

如果我添加一行label_count2.innerHTML = "any text"話,我可以看到價值。

你能告訴我爲什麼不從功能工作?

+1

您可以設置 「ID」 的屬性:'label_count2.id = 「label_count2」;' – Pointy 2012-07-12 13:06:02

+1

什麼是'count'在'updateText'功能?它不應該是'文字'嗎? – 2012-07-12 13:09:09

+0

的ID是確定的問題是在文本 – user1365697 2012-07-12 13:10:08

回答

3

此:

self.parent.appendChild(gradient_div); 

讓我覺得,要添加的元素的父窗口(雖然我不能肯定)。如果是這種情況,則子窗口中的document將不包含該元素,因此「getElementById()」將返回null

如果是這樣的話,那麼:

self.parent.document.getElementById('label_count2').innerHTML = count; 

可能會奏效。

+0

在debbug我成功從document.getElementById(「label_count2」)得到結果。innerText – user1365697 2012-07-12 13:09:11

+0

嗯,好吧,它根本不清楚什麼是「update_text」的東西是應該的成爲。看起來你只是發佈了一段代碼。 – Pointy 2012-07-12 13:09:58