Jquery将HTML作为对象或数组返回

时间:2012-03-22 12:37:51

标签: jquery html filter get

所以我有一个html doc,大约有20个div,上面有'event'类。

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

我想要做的是在一个对象或数组中获取html,这样我就可以循环遍历每个第三个包围它们的div,问题是rows.html()只返回第一个结果但rows.length是正确的。

请提供任何帮助。

5 个答案:

答案 0 :(得分:3)

您可以使用map()根据元素的HTML内容构建数组:

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

但是,如果您只想包装每个第三行的内容,只需将wrapInner():nth-child()选择器一起使用:

$(data).filter(".event:nth-child(3n)").wrapInner("<div></div>");

答案 1 :(得分:0)

您可以使用:

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

为了迭代jQuery集合的每个元素。

答案 2 :(得分:0)

jQuery尝试转换/解释html代码,如果你在其周围包裹$( ),那么尝试$(rows.html())。 然后迭代:

$.each(rows, function(index, value) {
    // Code here
}

答案 3 :(得分:0)

rows是数组,因此您应该迭代

for(var i=0; i<rows.length(); i++){
 rows[i].html();
}

答案 4 :(得分:0)

尝试此功能:

var arr = jQuery.map(rows, function (item) { 
  return $(item).html(); 
});