10

こんにちは、特定のクラスを使用して、別の HTML ファイル内のすべての DIV の ID を取得しようとしています。私が使用するファイルをロードするには:

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

今私が探しているのは、次のようなものです:

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

ページコードではなく、データ変数の競合内で jQuery セレクターを使用するようにします。手伝ってくれてありがとう!

4

4 に答える 4

10
$.get("blocks.html", function(data) {
    var ids = $('<div/>').html(data).find('div.block').map(function() {
        return this.id;
    }).get();
});
于 2013-05-16T14:57:47.037 に答える
8

これを試して:

$.get("blocks.html", function(data) {
        $(data).find('.block').each(function(){...});
});

「data html」を含む要素が「.block」の場合は、@ undefined の回答を見てください

于 2013-05-16T14:57:18.237 に答える
3

The answer really depends on what the responseText looks like that is being returned from the GET request. Based on that you would have to wrap it or not.

With Parent

If the response is nested inside of a parent tag.

Response Mark Up:

<div>
   <div id="someId1"></div>
   <div id="yourId" class="block"></div>
   <div id="someId2"></div>
</div>

JavaScript:

var htmlFiltered = $(html).find('.block');

Without Parent

If the response does not have a parent node wrapping the content, you would need to add the parent node or use filter.

Response Mark Up:

<div id="someId1"></div>
<div id="yourId" class="block"></div>
<div id="someId2"></div>

JavaScript:

var htmlFiltered = $(data).filter('.block');

or

var htmlFiltered = $("<div/>").html(data).find('.block');

Getting the ids

You can than use map() or each() on htmlFiltered to get the ids.

With each()

var ids = [];
htmlFiltered.each( function () {
 ids.push(this.id);   
});
console.log(ids);

With map()

var ids = $.map(htmlFiltered, function (elem) {
 return elem.id;   
});
console.log(ids);
于 2013-05-16T15:00:25.693 に答える
0

試す:

$.get("blocks.html", function(data) {
        $(data).find('.block').each(...
});
于 2013-05-16T14:58:33.933 に答える