1

ここで、Javaスクリプトで1つのエラーが発生しました。「div_element」がnullであるか、オブジェクトではありません。私は以下に私のコードを与えました

function showLoading(id) {
div_element = $("div#" + id)[0];
div_element.innerHTML = loading_anim; // Error in this line
}

スクリプトをデバッグすると、IE 8を含む他のブラウザーでは正常に機能しますが、IE7では機能しません。このスクリプトで発生する正確な問題がわかりません。

前もって感謝します。

4

4 に答える 4

0

まず、他のページの他の要素にまったく同じIDを持つ他の要素がない限り、jQueryの前にタグ名を付ける必要はありません。

次に、あなたのステートメントdiv_element.innerHTML = loading_anim;正しいです。したがって、唯一の説明は、DOMにはそのIDを持つ要素がないということです。

最後に、あなたはすでにjQueryを使用しているので、ネイティブJSとjQueryを混同して汚いコードを作成する必要はありません。

function showLoading(id) {

    div_element = $("#" + id);
    console.log(div_element); //check the console to see if it return any element or not
    div_element.html(loading_anim);

}
于 2012-04-18T10:31:15.367 に答える
0

.html()jQueryオブジェクトに使用します。dominnerHTMLオブジェクトでは機能しますが、jQueryオブジェクトでは機能しません。

function showLoading(id) {
    div_element = $("div#" + id);
    $(div_element).html(loading_anim); // Provided `loading_anim` is valid html element
}
于 2012-04-18T07:56:05.143 に答える
0

jqueryセレクターでは何も選択しないと思います(2行目)

表示してみてください

  • id
  • "div#" + id
  • $( "div#" + id)
  • $( "div#" + id)[0]

firebug javascriptコンソールまたは次のような単純なアラートを使用できます:alert($( "div#" + id)[0]);

そして、divでidまたはclassする必要があるかどうかを確認します(#または.selectorを使用します)

于 2012-04-18T07:58:19.357 に答える
0

nicがローダーGIFアニメーションを表示したいと思っていると思いますが、nicは.html()DOMオブジェクトにjQueryメソッドを使用する必要があり、tusarソリューションはIE6+ブラウザーで正常に機能します。また(それは明らかですが、とにかく)nicはloading_anim、スクリプト内の変数に値を割り当てる必要があります。たとえばvar loading_anim = $('#loader').html();、値をに割り当てる前に、次のようにしdiv_elementます。

于 2012-04-18T08:12:42.327 に答える