如果我有多个 .packages 类,如何为当前的 .packages 实现以下功能?
$('.packages').each(function(){
var sizeOfLi = $(".packages:last > li").width();
});
如果我有多个 .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 元素。
$(".packages:last > li").each(function() {
console.log($(this).width())
});
答案很好,each
或者您可以使用map
:
var liSizeArray = $(".packages:last > li").map(function() {
return $(this).width();
}).get();
返回值将是一个数字数组,即各个li
元素的宽度。
这始终适用于 jQuery 中的事件处理程序,它是您的 ,,main'' 函数选择器。
取决于你想做什么
如果你想获得li
选择时的宽度:
$(".packages:last > li").click(function(){
sizeOfLi = $(this).width();
});
按照 Amadan 的说法,绘制所有 li 大小的地图
var sizeOfAllLi = $(".packages:last > li").map(function() { return $(this).width(); })
在这种this
情况下,关键字指的是当前的 li