jQuery Selector里面的变量?

时间:2013-05-16 14:55:03

标签: javascript jquery html jquery-selectors

您好我试图在另一个HTML文件中使用特定的类获取所有DIV的ID。 要加载我使用的文件:

$.get("blocks.html", function(data) {
        //here I don't know how :)
});

现在我正在寻找的东西是这样的:

data.$('.block').each(... the rest is no problem

所以我使用的jQuery选择器不在我的页面代码上,而是在数据变量的竞争中。 谢谢你的帮助!

4 个答案:

答案 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的样子。基于此,你必须包装或不包装。

使用Parent

如果响应嵌套在父标记内。

响应标记:

<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');

获取ID

您可以使用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(...
});