javascript - jQuery 将元素 id 转换为逗号分隔的字符串
问题描述
我有一个简单的 html 和 jquery 脚本,如下所示,我正在尝试获取一个逗号分隔的数据项 id 列表,所以看起来像......
1,2,3,4,5
var items = $('.container').children();
console.log(items);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<div class="item" data-item-id="1">Item 1</div>
<div class="item" data-item-id="2">Item 2</div>
<div class="item" data-item-id="3">Item 3</div>
<div class="item" data-item-id="4">Item 4</div>
<div class="item" data-item-id="5">Item 5</div>
</div>
我已经抓住了这些项目,但是如何将其转换为逗号分隔的字符串?
解决方案
将每个项目映射到它的item-id
,然后用逗号加入:
var items = $('.container')
.children()
.map(function() { return $(this).data('item-id') })
.get()
.join(',');
console.log(items);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="container">
<div class="item" data-item-id="1">Item 1</div>
<div class="item" data-item-id="2">Item 2</div>
<div class="item" data-item-id="3">Item 3</div>
<div class="item" data-item-id="4">Item 4</div>
<div class="item" data-item-id="5">Item 5</div>
</div>
但是,如果您愿意,不需要像 jQuery 这样的大型库来完成这么简单的事情:
const items = Array.from(
document.querySelectorAll('.container > .item'),
div => div.dataset.itemId
)
.join(',');
console.log(items);
<div class="container">
<div class="item" data-item-id="1">Item 1</div>
<div class="item" data-item-id="2">Item 2</div>
<div class="item" data-item-id="3">Item 3</div>
<div class="item" data-item-id="4">Item 4</div>
<div class="item" data-item-id="5">Item 5</div>
</div>
推荐阅读
- javascript - 在使用 lodash 的 partialRight 创建的部分函数上解决未设置的“长度”属性
- reactjs - Datepicker - RangeError:无效的时间值
- svg - 有没有办法将蒙版或剪辑应用/烘焙到 svg,让您有一条路径?
- python - 用图像注释 Pandas 条形图
- python - 如何在满足条件之前留在 for 循环的元素中?
- python - 如果当前日期在列中,则显示行
- ruby - 散列中“传播”总和的算法
- java - 如何使用 lambda 表达式在辅助类中包装异常处理
- ms-office - 使用安装程序部署 office (web) 加载项
- java - Java - Uber jar (Maven Shaded) 无法将资源视为 URL