Использовать jQuery для переменной вместо DOM? - PullRequest
5 голосов
/ 07 мая 2010

В jQuery вы можете сделать:

$("a[href$='.img']").each(function(index) {
    alert($(this).attr('href'));
}

Я хочу написать функцию jQuery, которая сканирует x-уровни с веб-сайта и собирает все ссылки на изображения в формате gif.

Поэтому, когда я использую функцию get для извлечения другой страницы,

$.get(href, function(data) {

});

Я хочу иметь возможность сделать что-то вроде

data.$("a[href$='.img']").each(function(index) {
});

Возможно ли это?

... UPDATE ...

Благодаря ответам я смог решить эту проблему.

function FetchPage(href) {
    $.ajax({
        url: href,
        async: false,
        cache: false,
        success: function(html){
            $("#__tmp__").append("<page><name>" + href + "</name><content>" + html + "</content></page>");
        }
    });
}

См. этот zip fil e для примера, как его использовать.

Ответы [ 2 ]

4 голосов
/ 07 мая 2010

вы можете поместить полученные данные в DOM и затем запустить

$("a[href$='.img']").each(function(index) {
    alert($(this).attr('href'));
}

как то так

$.get(href, function(data) {
  $("#somelement").hide();
  $("#somelement").html(data);
  $("#somelement").find("a[href$='.img']").each(function(index) {
    alert($(this).attr('href'));
  }
  $("#somelement").show();
}
1 голос
/ 07 мая 2010

Я думаю, что лучше выполнить сканирование на стороне клиента (т.е. PHP) и вернуть hrefs изображения обратно в javascript / jquery.

Oh, и data. $ ("A [href $ ='.img'] ") невозможно.jQuery () работает путем поиска в существующем DOM.

...