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

私はこの問題についてSOについて同様の質問をいくつか受けましたが、それでも解決策が得られませんでした。

助けてください..advでありがとう...

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バージョンのドロップダウンリスト(または、指定した属性によっては複数選択リスト)です。

「Combo」要素が次のようになるように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 に答える