所以我有一个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是正确的。
请提供任何帮助。
答案 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();
});