Jquery Returing HTML как объект или массив - PullRequest
1 голос
/ 22 марта 2012

Итак, у меня есть HTML-документ с 20 делениями с классом 'событие'.

rows = $(data).filter('.event');
alert(rows.length); //returns 20
alert(rows.html()); // only returns first result

То, что я хочу сделать, это получить html в объекте или массиве, чтобы я мог циклически проходить и каждый третий обернуть вокруг них div, проблема в rows.html () возвращает только первый результат, но rows.length это правильный.

Пожалуйста, любая помощь будет оценена.

Ответы [ 5 ]

3 голосов
/ 22 марта 2012

Вы можете использовать map () для построения массива из содержимого HTML ваших элементов:

var htmlContentArray = rows.map(function() {
    return $(this).html();
}).get();

Однако, если вы хотите обернуть содержимое каждой третьей строки, вы можете просто использовать wrapInner () с селектором : nth-child () :

$(data).filter(".event:nth-child(3n)").wrapInner("<div></div>");
0 голосов
/ 22 марта 2012

Попробуйте эту функцию:

var arr = jQuery.map(rows, function (item) { 
  return $(item).html(); 
});
0 голосов
/ 22 марта 2012

строк это массив, поэтому вы должны перебрать

for(var i=0; i<rows.length(); i++){
 rows[i].html();
}
0 голосов
/ 22 марта 2012

jQuery пытается конвертировать / интерпретировать html-код, если вы оберните $( ), поэтому попробуйте сделать $(rows.html()).Затем повторить:

$.each(rows, function(index, value) {
    // Code here
}
0 голосов
/ 22 марта 2012

Вы можете использовать:

rows.each(function(index, element)) {
  // Your code goes here
  alert($(this).html());
});

Для итерации каждого элемента коллекции jQuery.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...