如何使用live循环遍历由 AJAX 返回的动态创建的元素? AJAX返回下面的HTML ...现在,在获得该HTML之后,我如何循环它以检索id值?我使用.each()
但它根本不起作用,我总是完美地使用它来获取静态HTML
数据..如何将{.each与.live()
函数一起使用?我没有问题就点击直播了。
// this HTML is provided by AJAX dynamically
<div id="defaults">
<div id="badge_id" class="unique_ids database_key ui-droppable ui-sortable">
<h1 class="ui-widget-header">
<label class="description">Badge ID</label>
</h1>
<div class="ui-widget-content">
<ol></ol>
</div>
<li id="0" class="ui-draggable">dsifs</li>
</div>
<div id="registration_type" class="unique_ids database_key ui-droppable ui-sortable">
<h1 class="ui-widget-header">
<label class="description">Registration Type</label>
</h1>
<div class="ui-widget-content">
<ol>
<li class="placeholder">Add "Registration Type" here</li>
</ol>
</div>
</div>
</div>
答案 0 :(得分:0)
您应该在AJAX success
回调中捕获ID。
以下是您使用.load()
时的示例。
var ids = [];
$('#result').load('ajax/test.html', function() {
$('#saveButton').on('click',function() {
$('#result *[id]').each(function() {
ids.push( $(this).attr('id') );
});
});
});
答案 1 :(得分:0)
Ajax是异步的因此您需要处理请求的success
回调内的循环。
您使用live
将事件附加到动态创建的元素(不建议使用)。需要将其替换为.on
如何将.each与.live()函数一起使用?
each
用于迭代对象,live
用于附加事件。你永远不会把他们俩聚在一起。