0

我收到运行时 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

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

请帮忙..谢谢您的建议...

4

2 回答 2

1

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

它的值可能是 ,null因为您的代码没有找到带有id="Combo". 这可能是因为:

  1. 您的页面中不存在此类对象
  2. 你没有得到完全正确的 id
  3. 您在页面加载之前运行此代码,因此尚未加载/创建对象。

如果您包含整个页面上下文(所有 HTML 和所有 JS 或指向实时页面的链接),我们可以更具体地告诉您应该采取哪些步骤来纠正问题。

于 2012-01-04T06:00:31.253 回答
1

您不能将子元素附加到<input>元素。

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

尝试更改您的 html,使您的“组合”元素如下所示:

<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 添加其他选项和/或删除选项。)

于 2012-01-04T06:46:02.660 回答