1

今日、よくわからない興味深いことに出くわしました。これ (以下を参照) の非常に単純な jQuery スクリプトは機能しません。基本的に、青 == true (これは true) の場合、先頭に追加された div の背景色を赤に変更したいと考えています。

var panel = $("<div id='panel'></div>");
var panelBg = $("#panel");

var test = "true";
var red  = "true";
var blue = "true";


if (test == "true") {


    if (red == "true") {

       $("#first").prepend(panel);

    }



    if (blue == "true") {

       panelBg.css("background-color","red");

    }


}

しかし、この行を変更すると:

  panelBg.css("background-color","red");

これに:

  $("#panel").css("background-color","red");

スクリプトは機能します。

実際のデモ: http://jsfiddle.net/wK2jw/

4

2 に答える 2

0

はい、DOM にまだ存在しないオブジェクトを変数に割り当てています。

var panelBg = $("#panel"); を移動できます。コードを前に追加した後。

補足として、if (test == "true") の代わりに、コードを少しクリーンアップすることもできます。

于 2012-06-04T18:16:54.603 に答える