2012-01-16 72 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调用,不被应用的页面加载和CSS当正在应用该CSS到AJAX添加的元素。尝试移动你设置边框的3px固体红到success回调线,像这样:

$(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在加载源代码后操作源代码,因此要查看链接的代码,您需要打开Developer Tools(F12)或Firefox的FireBug。这应该工作。 – Nathan 2012-01-16 05:20:46

+0

对不起,但它不工作。该链接是在没有应用css的情况下生成的。我通过浏览器视图 - >源菜单浏览了页面源代码,但链接不存在。这可能是怎么回事?它出现在页面上,但不在源代码中: - ? – under5hell 2012-01-16 05:23:20

+1

哇,对不起..我的坏。我在最后一次尝试时犯了一个错误。现在你的解决方案正在工作:-)谢谢 – under5hell 2012-01-16 05:31:10

1

在你的代码运行时,该链接不存在的网页上。

选择$.ajax()调用的success回调中的元素。

+0

你摇滚!有用。谢谢你:-) – under5hell 2012-01-16 05:37:32

1

移动这一行到回调函数

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

jQuery是发出Ajax请求,然后,没有接收到响应了,即刻执行上面的行。那时,链接还没有创建。

所以,你的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 2012-01-16 05:37:18