如果我有多个具有 .packages 类,如何为当前的 .packages 实现以下内容?
$('.packages').each(function(){
var sizeOfLi = $(".packages:last > li").width();
});
var sizeOfAllLi = $(".packages:last > li").map(function() {
return $(this).width();
});
map
函数遍历 jQuery 集合并调用参数中提供的函数,this
设置为当前元素。它将收集 jQuery 集合数组中的所有返回值(请参阅注释)。如果需要数组,请将.get()
添加到上述内容的末尾。
在函数内部,需要重新包装this
为 jQuery 元素,以便我们可以使用 jQuery 的.width()
,因为this
是一个裸 DOM 元素。
each
答案很好,或者您可以使用map
:
var liSizeArray = $(".packages:last > li").map(function() {
return $(this).width();
}).get();
返回值将是一个数字数组,即各个li
元素的宽度。
$(".packages:last > li").each(function() {
console.log($(this).width())
});
始终适用于jQuery中的事件处理程序,它是函数的,,main''选择器。
取决于你想做什么
如果要在选择时获取li
的宽度:
$(".packages:last > li").click(function(){
sizeOfLi = $(this).width();
});
地图所有 li 大小都按照阿马丹说的做
var sizeOfAllLi = $(".packages:last > li").map(function() { return $(this).width(); })
在这种情况下,this
关键字是指当前的 li