.innerHTML不工作

时间:2013-10-06 18:07:34

标签: javascript innerhtml

我有一个非常愚蠢的问题。我想更改表格单元格的内容。我的代码:

        var x = ajax('...');

    alert(x);
    alert(document.getElementById(tdId).innerHTML);

    document.getElementById(tdId).innerHTML = x;

“x”具有正确的内容=>所以ajax正在工作 第二个警报(...)也给出了正确(实际)的内容。但是当我想在单元格中写x时,没有任何反应。没错,没什么......

我在这里检查了一些类似的问题,但没有成功。

我真的不知道,我可以进一步测试什么来理解这个问题。你有好主意吗?非常感谢你的帮助!

3 个答案:

答案 0 :(得分:1)

我有解决方案!!!

这非常愚蠢:我通过点击td改变了td的内容...但新内容有一个按钮可以再次点击...现在,firefox从头开始并显示“第二个”内容再次......

太难了! : - )

但是,我非常感谢你的帮助!抱歉浪费你的时间! :(

答案 1 :(得分:0)

var x = "Hello World";
var td = document.getElementById("myId");
var text = document.createTextNode(x);
td.appendChild(text);

如果您的脚本位于页面顶部,则当您尝试运行javascript函数时,DOM尚未完成加载。

确保在加载DOM后您的Javascript正在运行:

window.onload += function(){
    var x = "Hello World";
    var td = document.getElementById("myId");
    var text = document.createTextNode(x);
    td.appendChild(text);
}; 

或者,将脚本文件移动到页面底部。 (第一个更推荐)

答案 2 :(得分:0)

您的代码是正确的,但要确保此元素未被隐藏(例如,display:none或visibility:hidden)。如果在HTML文件中设置默认值,它会出现吗?

您还可以进行测试,将x的内容添加到另一个元素。尝试 document.body.innerHTML += x或甚至将x替换为字符串文字,例如“this is a test”。