您好我试图在另一个HTML文件中使用特定的类获取所有DIV的ID。 要加载我使用的文件:
$.get("blocks.html", function(data) {
//here I don't know how :)
});
现在我正在寻找的东西是这样的:
data.$('.block').each(... the rest is no problem
所以我使用的jQuery选择器不在我的页面代码上,而是在数据变量的竞争中。 谢谢你的帮助!
答案 0 :(得分:9)
$.get("blocks.html", function(data) {
var ids = $('<div/>').html(data).find('div.block').map(function() {
return this.id;
}).get();
});
答案 1 :(得分:8)
试试这个:
$.get("blocks.html", function(data) {
$(data).find('.block').each(function(){...});
});
如果您的'data html'包含元素是'.block',请查看@ undefined的答案
答案 2 :(得分:3)
答案实际上取决于从GET请求返回的responseText的样子。基于此,你必须包装或不包装。
如果响应嵌套在父标记内。
响应标记:
<div>
<div id="someId1"></div>
<div id="yourId" class="block"></div>
<div id="someId2"></div>
</div>
<强> JavaScript的:强>
var htmlFiltered = $(html).find('.block');
如果响应没有包装内容的父节点,则需要添加父节点或使用过滤器。
响应标记:
<div id="someId1"></div>
<div id="yourId" class="block"></div>
<div id="someId2"></div>
<强> JavaScript的:强>
var htmlFiltered = $(data).filter('.block');
或
var htmlFiltered = $("<div/>").html(data).find('.block');
您可以使用map()
上的each()
或htmlFiltered
来获取ID。
使用each()
var ids = [];
htmlFiltered.each( function () {
ids.push(this.id);
});
console.log(ids);
使用map()
var ids = $.map(htmlFiltered, function (elem) {
return elem.id;
});
console.log(ids);
答案 3 :(得分:0)
尝试:
$.get("blocks.html", function(data) {
$(data).find('.block').each(...
});