Javascript 在ajax响应中通过类查找id

Javascript 在ajax响应中通过类查找id,javascript,jquery,html,ajax,Javascript,Jquery,Html,Ajax,我在网上找到的每一个解决方案都返回“未定义”。 我使用ajax通过jquery验证插件提交了一个表单。 回复返回。。。。 id根据数据的不同而变化,如下所示 <div class="item" id="item-1"> .... </div> <div class="item" id="item-2"> .... </div> <div class="item" id="item-3"> .... </div> 谢谢问题在

我在网上找到的每一个解决方案都返回“未定义”。 我使用ajax通过jquery验证插件提交了一个表单。 回复返回。。。。 id根据数据的不同而变化,如下所示

<div class="item" id="item-1"> .... </div>
<div class="item" id="item-2"> .... </div>
<div class="item" id="item-3"> .... </div>

谢谢

问题在于
response
中的元素是顶级元素,因此
find
将只查找其子元素

您可以首先包装返回的元素(例如,在虚拟div中),以创建要从中搜索的有效祖先元素:

// Wrap the incoming HTML in a dummy element
var $div = $('<div>').html(response);

// Find the .item and alert its id
alert($div.find('.item').attr('id'));
//将传入的HTML包装在伪元素中
var$div=$('').html(响应);
//查找.item并通知其id
警报($div.find('.item').attr('id'));
或者(按照其他人的建议),您可以筛选返回的单个项目,但如果返回多个项目,则可能会失败。坚持包装技巧。

使用
filter()
map()


$(响应)。使用您提供的代码查找('.item').attr('id')
,警报不应未定义。请将整个ajax代码放在此处
$(响应)。筛选器('.item')
$(“.item[id*='item'])
// Wrap the incoming HTML in a dummy element
var $div = $('<div>').html(response);

// Find the .item and alert its id
alert($div.find('.item').attr('id'));
var idsToRemove = $(response).filter('.item').map(function () {
    return '#' + this.id;
}).get().join(',');

$(idsToRemove).remove(); // then remove old duplicates from DOM