如何在选择器中搜索id?

时间:2012-09-24 09:31:20

标签: jquery ajax

受到这个答案的启发here我使用jquery克隆一组元素,并在.find .each循环中相应地重命名id以使它们保持唯一。

像这样:

newElement.find(':input').each(function() {
    var name = $(this).attr('name').replace('-' + 0 + '-','-' + total + '-');
    var id = 'id_' + name;
    $(this).attr({'name': name, 'id': id}).val('').removeAttr('checked');
});

到目前为止,我的目标是检查那里的复选框以及最初克隆的表单。

1)我有两种方法可以实现这一点,我在重命名id之前在选择器中设置了复选框。

$newElement  ??? -->  $('#id_deals-0-is_form_cloned_by_ajax').prop('checked', true);

2)或者我等到id被重命名并且变得独一无二:

$('#id_deals-' + total + '-is_form_cloned_by_ajax').prop('checked', true);

第二种方法的问题是.find。每个都是异步方法,当我尝试查找该复选框的id来设置它时,可能还没有重命名。

因此我认为方法一更安全,但我不知道如何仅在选择器中检查ID。

请问有人指出正确的方向吗?

2 个答案:

答案 0 :(得分:0)

像以前一样使用.find来查找ID。 Simples?

http://api.jquery.com/find/

答案 1 :(得分:0)

$newElement.find(':input').each(function() {
    var name = $(this).attr('name').replace('-' + 0 + '-','-' + total + '-');
    var id = 'id_' + name;
    $(this).attr({'name': name, 'id': id}).val('').removeAttr('checked');
});

// Find an element within $newElement
$newElement.find('#id_deals-' + total + '-is_form_cloned_by_ajax').attr('checked', true);