javascript - jquery、zepto如何将对象集合的某个属性生成一个集合?
怪我咯
怪我咯 2017-04-10 14:46:33
[JavaScript讨论组]

比如说

<ul id="ul">
  <li data-id="1"></li>
  <li data-id="2"></li>
  <li data-id="3"></li>
</ul>

如何获取将所有data-id弄成一个集合(比如数组)?
我是想实现判断出data-id中的最大值,我的想法是把data-id弄成一个集合,在比较,是否有更好的想法?

怪我咯
怪我咯

走同样的路,发现不同的人生

全部回复(1)
阿神

我最初想的是能不能$("#ul").find("*").data("id")直接取得。可惜.data()是jQuery中不多见的不能用于集合元素的方法。对一个jQuery集合调用.data()结果是只对第一个元素生效。

所以这个需求就必须明确使用jQuery里集合遍历的相关方法了。其实也很简单:

$(function(){
    console.log(
        $("#ul").find("*").map(function(){
            return $(this).data("id");
        })
    ); // Object[1, 2, 3]
});

.map()方法忽略所有的undefined,因此不用对不包含data-id属性的子元素做出任何特殊处理。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号