在ajax响应中通过类找到id

时间:2014-10-29 14:11:27

标签: 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>

顺便说一句,我无法访问返回数据的php服务器。

我想获取id名称,以便首先删除具有相同id的div元素 并附加来自服务器的响应。

我试过的最后一个代码是

var targetDiv = $(response).find('.item');
alert(targetDiv);

感谢

2 个答案:

答案 0 :(得分:0)

问题在于,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'));

或(如他人所建议)您可以过滤返回的单个项目,但如果返回多个项目,则可能会失败。坚持包装技巧。

答案 1 :(得分:0)

使用filter()map()

var idsToRemove = $(response).filter('.item').map(function () {
    return '#' + this.id;
}).get().join(',');

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

-DEMO-