jquery 获取每个元素的data-id,指定classname作为字符串,而不是作为对象[重复]

uujelgoq  于 11个月前  发布在  jQuery
关注(0)|答案(1)|浏览(127)

此问题已在此处有答案

Easy way to turn JavaScript array into comma-separated list?(22个回答)
24天前关闭
我有一个这样的HTML列表:

<div id="list">
   <div class="special" data-id="TZ2"></div>
   <div class="special" data-id="KJ1"></div>
   <div class="" data-id="LLT"></div>
   <div class="" data-id="UV3"></div>
   <div class="special" data-id="JQT"></div>
</div>

我想得到所有的data-id的div与classname special,由逗号分割,作为一个字符串。

var myIDs = $("#list > div").each(function() {
   $(".special", this).data('id');
});

通过这种方式,我将myIDs变量作为对象获取,但我只希望data-id s作为字符串列表,如下所示:

TZ2,KJ1,JQT

我也试过这个,在运行每个函数之后:

var myIDsString = myIDs.data('id');

但是我只得到第一个对象的data-id。我的失败是什么?

var myIDs = $("#list > div").each(function() {
   $(".special", this).data('id');
});

var myIDsString = myIDs.data('id');

console.log(myIDsString)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="list">
   <div class="special" data-id="TZ2"></div>
   <div class="special" data-id="KJ1"></div>
   <div class="" data-id="LLT"></div>
   <div class="" data-id="UV3"></div>
   <div class="special" data-id="JQT"></div>
</div>
svmlkihl

svmlkihl1#

首先将所有的ID放入数组中,然后使用toString()函数将其转换为字符串。

let myIDs = [];

$(document).find('.special').each(function() {
  let id = $(this).data('id');
  myIDs.push(id);
})

console.log(myIDs.toString());
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<div id="list">
  <div class="special" data-id="TZ2"></div>
  <div class="special" data-id="KJ1"></div>
  <div class="" data-id="LLT"></div>
  <div class="" data-id="UV3"></div>
  <div class="special" data-id="JQT"></div>
</div>

相关问题