2016-07-28 5 views
0

jQueryを使用してHTMLを生成しようとしていますが、必要なクラスなどで要素を作成しておき、それが意味をなさせるならば、私は以下のコードを書いたが、エラーは発生しないが、コンテナにHTMLを全く追加していない。jQueryを使用してHTMLを生成する

どういうところが間違っていますか?

(function($) { 
    $.fn.twitter_plugin = function(options) { 

    var container = this[0]; 

    console.log('Started'); 
    // Make aJax call 

    // Generate HTML 
    $con = $("<div>", { "class" : "tweet" }); 
    $(container).append($con); 
     $col1 = $("<div>", { "class" : "twocol" }); 
     $con.append($col1); 
     $col2 = $("<div>", { "class" : "tencol last" }); 
     $con.append($col2); 

     // Profile Image 
     $tweet_profile_div = $("<div>", { "class" : "tweet-profile-photo" }); 
     $col1.append($tweet_profile_div); 
      $profile_img = $("img", { "src" : '', "class" : "responsive-img" }); 
      $tweet_profile_div.append($profile_img); 
     // END Profile Image 

     // Tweet 
     $tweet_head = $("div", { "class" : "tweet-head" }); 
     // END Tweet 

    }; 
}(jQuery)); 

ので、同じようにこれを実行:

<script src="js-src/themev2/twitter_plugin.js"></script> 
<script> 
$(document).ready(function() { 
    $("#map_canvas").twitter_plugin({ }); 
}); 
</script> 

編集1

にconsole.logが表示されているよう@Seanライマーは、私のtwitter_plugin機能は、あなたが提案し、その変更せずに実行されています、これは問題ではありません

+0

コンソールログを取得しましたか? – Adjit

+0

jQueryをインクルードしましたか? – gaetanoM

答えて

1

問題は、jquery用のIIFEを持っていることですが、あなたの中に '$ .fn.twitter_プラグイン関数 'が定義されていますが呼び出されていません。 関数定義の最後に、()を追加して呼び出す必要があります。

はそう

 $tweet_head = $("div", { "class" : "tweet-head" }); 
     // END Tweet 
    }; 

私もこれは[0]ちょうどあなたのコンテナ要素として体を保存する方がよいかもしれません完全に信頼性があるかどうかわからないのです

 $tweet_head = $("div", { "class" : "tweet-head" }); 
     // END Tweet 

    }(); 

でなければなりません。これは単なるウィンドウオブジェクトなので、0のインデックス要素はありません

var container = $('body') は問題を解決します。

+0

'this [0]'はここで '$("#map_canvas ")で定義された要素を取得します。twitter_plugin({});'私は新しい要素を本体に入れなくてはなりません。そして、私の質問への答えに感謝:) –

+0

編集を参照してください、行方不明()は問題を解決しません。 –

0

愚かな間違いをしましたが、コードは正常に動作しました。ターゲット要素のIDが間違っていただけです。

関連する問題