1

別の .js ファイルを参照する JavaScript リンクがあります。(テスト目的で)画像を出力しようとしましたが、これを行う正しい方法がわかりません。

    alert("beginning");
    //var link = $("<a href='http://juixe.com'>Hello, <b>World</b>!</a>");
    //$('body').append(link);
    //document.write("hi");
    //document.write("<div><img src='http://s3-media2.ak.yelpcdn.com/bphoto/xqC6Iy5mOLb_8mwMKGv8_w/l.jpg' /></div>");
    alert("before function");
(function(){



    alert("middle");
    var links = $("<a href='http://juixe.com'>Hello, <b>World</b>!</a>");
    $('body').append(links);
    alert("after middle");
    //alert($("img").attr("id"));
    document.write("hi");
    document.write("<div><img src='http://s3-media2.ak.yelpcdn.com/bphoto/xqC6Iy5mOLb_8mwMKGv8_w/l.jpg' /></div>");

    alert("end");
}());

序盤から中盤まで警戒できました。var linksうまくいかないようです。.jsこのファイル内で HTML を使用しようとしています。基本的に、モーダルウィンドウを実行できるようにしたいのですが、現在テスト目的で画像を出力しようとしています。

また、これはjqueryの正しい方法ですか?

前もって感謝します!

4

2 に答える 2

2

あなたのコードは奇妙な組み合わせです。ほとんどの場合、Jquery コードはページの読み込み後に実行する必要がありますが、ページdocument.writeの読み込み後には使用できません。

即時実行関数で jQuery を誤ってラップしています。jQuery の適切なラップは次のとおりです。

$(document).ready(function(){
  /* html of page exists now, run jQuery here */
});// notice no extra "()" after close brace as you have

または同じことを行う簡略版:

$(function(){
  /*html of page exists now, run jQuery here */
});// notice no extra "()" after close brace  as you have

document.writeすべてをto に変更し、$('body').append(/* your content*/)すべてのコードを上記のラッパー内に配置すると、はるかにうまくいくでしょう。

jQuery のドキュメントと API には豊富な情報があります。私が示したラッピングについてのより詳細な出発点は、ここにあります: http://docs.jquery.com/How_jQuery_Works

于 2012-06-24T00:46:49.743 に答える
1

あなたの最大の問題は、他の回答で解決されます。JQuery を不適切にラップしているため、基本的に JQuery はappendステートメントに到達したときに実行する準備ができていません。

HTML を JQuery オブジェクトでラップする必要はありません (この場合)。

var links = "<a href='http://juixe.com'>Hello, <b>World</b>!</a>";
$('body').append(links);

または単に:

$('body').append("<a href='http://juixe.com'>Hello, <b>World</b>!</a>");

ベスト プラクティスに関しては、コンテキストに応じてappendappendToまたはを使用することをお勧めします。prepend以下を使用することもできます。

$("body").html("/*Your HTML here*/")

結局のところ、多くのオプションがありますが、絶対document.writeに避けてください。非 JQuery アプローチは.innerHTML、DOM 要素で使用することです。これは、JQuery がない場合にも有効な方法です。

于 2012-06-24T00:54:17.090 に答える