-1

如果我有多个 .packages 类,如何为当前的 .packages 实现以下功能?

$('.packages').each(function(){
    var sizeOfLi = $(".packages:last > li").width();
});
4

5 回答 5

8
var sizeOfAllLi = $(".packages:last > li").map(function() {
  return $(this).width();
});

map函数遍历 jQuery 集合并调用参数中提供的函数,并将其this设置为当前元素。它将把所有返回值收集到一个jQuery 集合中(见注释)。如果你想要一个数组,添加.get()到上面的末尾。

在函数内部,需要重新包装this为 jQuery 元素,以便我们可以使用 jQuery 的.width(),因为this它是一个裸 DOM 元素。

于 2012-05-14T07:13:58.310 回答
1
$(".packages:last > li").each(function() {
   console.log($(this).width())
});
于 2012-05-14T07:13:42.140 回答
1

答案很好,each或者您可以使用map

var liSizeArray = $(".packages:last > li").map(function() {
    return $(this).width();
}).get();

返回值将是一个数字数组,即各个li元素的宽度。

于 2012-05-14T07:16:27.557 回答
0

这始终适用于 jQuery 中的事件处理程序,它是您的 ,,main'' 函数选择器。

于 2012-05-14T07:13:14.783 回答
0

取决于你想做什么

如果你想获得li选择时的宽度:

$(".packages:last > li").click(function(){
  sizeOfLi = $(this).width();
});

按照 Amadan 的说法,绘制所有 li 大小的地图

var sizeOfAllLi = $(".packages:last > li").map(function() { return $(this).width(); })

在这种this情况下,关键字指的是当前的 li

于 2012-05-14T07:17:59.997 回答