2012-01-16 20 views
1

サーバーへのAjax呼び出しでアンカー要素を生成するコードを記述しています。リストが正常に生成されます。しかし、私はクラスのアンカー要素を選択しようとしたとき、私は何も取得しませんでした。私のコードに何か問題がありますか?助言がありますか?私はあなたのすべてのフィードバックに感謝します。おかげjQuery:動的に生成されたアンカー要素を選択できません

ここにあなたのコードが実行される時には、私のコード

$(document).ready(function(){ 
    generate_link('somelink.php', '#link ul'); 

    $(".mylink").css("border","3px solid red"); //this is not works :-(

}); 

function generate_link(method_url, target) 
{ 

     $.ajax({ 
      type: 'GET', 
      url: method_url, 
      dataType: 'json', 
      success: function(data) { 
      var str=''; 
      for(i=0;i<data.length;i++){ 
       str = str + ('<li><a href="' + data[i]['anchor'] +'" class="mylink"></li>'); 
        } 
      $(target).html(str); 
      } 
     }); 
} 

答えて

1

のようになります。 AJAXで追加された要素に追加します。このように、あなたはsuccessコールバックに赤く3pxする境界線を設定する行を移動してみてください:

$(document).ready(function(){ 
    generate_link('somelink.php', '#link ul'); 
}); 

function generate_link(method_url, target) 
{ 

     $.ajax({ 
      type: 'GET', 
      url: method_url, 
      dataType: 'json', 
      success: function(data) { 
      var str=''; 
      for(i=0;i<data.length;i++){ 
       str = str + ('<li><a href="' + data[i]['anchor'] +'" class="mylink"></li>'); 
        } 
      $(target).html(str); 
      $(".mylink").css("border","3px solid red"); 
      } 
     }); 
} 

私はこのことができます願っています。

+0

@ under5hellあなたはソースでJavaScriptによって生成されたものは見たことがありません。 JavaScriptが読み込まれた後にソースを操作するので、links'c odeを見るにはDeveloper Tools(F12)またはFireBug for Firefoxを開く必要があります。しかし、それはうまくいくはずです。 – Nathan

+0

申し訳ありませんが、動作していません。リンクはCSSが適用されずに生成されます。私はブラウザのビュー - >ソースメニューでページソースコードを覗いてみましたが、リンクはありません。これはどのようにすることができますか?ページに表示されましたが、ソースコードには表示されませんでした: - ? – under5hell

+1

うわー、申し訳ありません。私は最後の試行で間違いを犯しました。今あなたのソリューションは働いています:-) thanks – under5hell

1

だ、リンクがページに存在しません。

$.ajax()コールのsuccessコールバックの要素を選択してください。 jQueryのAjaxリクエストを発行し、その後、まだ応答を受信して​​いないコールバック関数へ

+0

ロック!できます。あなたに感謝:-) – under5hell

1

移動行を

$(".mylink").css("border","3px solid red"); //this is not works :-(

は、即座に上記の行を実行します。その時点で、リンクはまだ作成されていません。あなたのAJAX呼び出しを行うページのロード時とは、CSSが適用されていないいないときにCSSが適用されているので

だから、あなたのAJAX呼び出しが

function generate_link(method_url, target) 
{ 
    $.ajax({ 
     type: 'GET', 
     url: method_url, 
     dataType: 'json', 
     success: function(data) { 
     var str=''; 
     for(i=0;i<data.length;i++){ 
      str = str + ('<li><a href="' + data[i]['anchor'] +'" class="mylink"></li>'); 
       } 
     $(target).html(str); 
     $(".mylink").css("border","3px solid red"); //added this here 
     } 
    }); 

}

+1

それは動作します。ありがとうございます。 :-) – under5hell

関連する問題