JavaScript RunTime错误:appendChild() - 对IE8中的方法或属性的意外调用

时间:2012-01-04 05:57:58

标签: javascript dom runtime-error appendchild

我得到运行时JS错误,如:“对方法或属性的意外调用”。 这是代码:

    var comboInput = document.getElementById("Combo");
    var option1 = document.createElement("option");
    option1.value = "-1";
    option1.innerHTML = "--Select--";
    comboInput.appendChild(option1); //At this line debugger breaks and
                                     // throws the above error

我在这个问题上经历了一些关于这个问题的类似问题,但仍未得到解决方案。

请帮忙.. 谢谢你...

2 个答案:

答案 0 :(得分:1)

您需要检查comboInput的值(使用console.log()alert()输出其值以查看其设置值)。

它的值可能为null,因为您的代码未找到id="Combo"的现有对象。这可能是因为:

  1. 您的页面中不存在此类对象
  2. 你没有完全正确的身份
  3. 您在页面加载之前运行此代码,因此尚未加载/创建对象。
  4. 如果您包含整个页面上下文(所有HTML和所有JS或指向实际页面的链接),我们可以更具体地告诉您应采取哪些步骤来纠正问题。

答案 1 :(得分:1)

您无法将儿童附加到<input>元素。

<option>元素只能是<select>元素的子元素,其中<select>元素是html的下拉列表版本(或多选列表,具体取决于您提供的属性)

尝试更改您的html,以便您的“Combo”元素如下所示:

<select id="Combo"></select>

然后你的代码应该可以工作。

请注意,您可以直接在html标记中设置选项,例如

<select id="Combo">
    <option value="-1">--Select--</option>
    <option value="1">Green</option>
    <option value="2">Purple</option>
</select>

(在你的html中添加了选项,你可以通过JS添加其他选项和/或删除选项。)