jQuery动态内容

时间:2013-07-21 04:46:17

标签: javascript jquery html

我要快速搜索我的内容;

我有以下HTML代码:

<ul id='dynamic'>
 <li data-c='a'></li>
 <li data-c='b'></li>
 <li data-c='c'></li>
</ul>

到我的搜索目标,#dynamic ID可以更改为任何内容;

$.post("ajax.php", { sort:$(this).val() }).done(function(data) {
$("#dynamic").html(data);
});

当我尝试使用$ .each()获取“<li>”元素时,被替换的元素返回false; 实际上我应该像$ .live(each,function(){});但没有像这个功能。
$.post请求在另一个函数中,我试图通过$ .each获取li个元素; 例如:

$("li").each(function(){

// do stuff.

});

当我通过ajax更改内容时,上面的代码无效。 我该怎么办? 编辑:(我的代码的这一部分不起作用,如果#myElm的孩子删除或替换其他任何东西._

$("#dynamic").find("li").each(function(){
// do stuff
});

“抱歉可怜的人”

2 个答案:

答案 0 :(得分:0)

如果jQuery&gt;然后使用1.7

$('#dynamic').on('click', 'li', function(){
    alert('clicked' + $(this).text())
})

答案 1 :(得分:0)

$。发布对特定网址的异步ajax调用 我想你正在尝试对尚未加载的内容进行处理。 使用同步请求或完成功能

$.post("ajax.php", { sort:$(this).val() }).done(function(data) { // asynchronous request  
$("#dynamic").html(data);
});

$("li").each(function(){ // but  $("#dynamic") is not yet updated by ajax due to asynchronous request 

// do stuff.

});

将您的代码更改为

$.post("ajax.php", { sort:$(this).val() }).done(function(data) {
    $("#dynamic").html(data);

    $("li").each(function(){ //on updation of  $("#dynamic") by asynchronous request 

    // do stuff.

    });
    });

或者使用$ .ajax

的同步请求
    $.ajax({url:"ajax.php", data:{ sort:$(this).val() },async:false,type:"post",
    success:function(){
    $("#dynamic").html(data);
      }});

$("li").each(function(){ //on updation of  $("#dynamic") by sync request 

        // do stuff.

        });

async:false 阻止异步请求