2013-04-03 3 views
0
$.get(url, function(data){ 
    $("<div>" + data + "</div>").find('.list [class^=data]').each(function(){ 
     if($(this).is("[class^=dataitem]")){ 
      //code for dataitem 
     } 
     else{ 
      //code for not dataitem 
     } 
    }); 
}); 

С помощью функции get я генерирую strig переменную с кодом страницы url. В этой переменной я нахожу теги, дочерние теги с классом = list, класс которых начинается с «данных» и для каждого из этих элементов управления, если класс начинается с «dataItem», и если это применимо к коду для этих тегов. Почему это не работает?JQuery: как использовать каждый в результате поиска()?

+1

Я не знать! У вас возникли ошибки в консоли? Каков ваш запрос точно? – nirazul

+0

Откуда вы знаете, что это не работает? Пожалуйста, покажите нам пример ввода, какой результат вы ожидаете (и пусть ваш скрипт действительно что-то делает), и что вы получите вместо этого. – Bergi

ответ

1

Попробуйте это:

$.get(url, function(data){ 
    var YourFindElement = $("<div>" + data + "</div>").find('.list [class^=data]'); 
     $.each(YourFindElement , function (i, rowValue) { 
      if($(this).hasClass("dataitem")){ 
       //code for dataitem 
      } 
      else{ 
      //code for not dataitem 
      } 
     }); 
}); 
+0

Что случилось с '$ .fn.each'? – Bergi

1

Короткий ответ. Поскольку ваш выбор не возвращает никаких объектов. И может быть несколько причин для этого

вы могли бы изменить код

$.get(url, function(data){ 
    $("<div>" + data + "</div>").find('.list [class^="data"]').each(function(){ 
     if($(this).hasClass("dataitem")){ 
      //code for dataitem 
     } 
     else{ 
      //code for not dataitem 
     } 
    }); 
}); 

, который удалит первый из ваших проблем (Вам необходимо обернуть значение атрибута в qoutes). Однако гораздо более вероятной причиной является то, что вы смотрите на значение атрибута, поэтому class="hover dataitem" не будет совпадать, тогда как class="dataitem hover" будет. Therefor я предлагаю вам перейти к

$.get(url, function(data){ 
    $("<div>" + data + "</div>").find('.list .data').each(function(){ 
     if($(this).hasClass("dataitem")){ 
      //code for dataitem 
     } 
     else{ 
      //code for not dataitem 
     } 
    }); 
}); 

, который потребует от вас, чтобы добавить data класс рассматриваемых элементов, а не только dataitem

+0

Вам не нужно обтекать значения атрибутов в кавычках, только если они содержат недопустимые символы (например, кавычки, закрывающие скобки и т. П.). – Bergi