Javascript JQuery从列表中获取所有数据属性

Javascript JQuery从列表中获取所有数据属性,javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,我有一个长的动态生成列表,每个列表都具有相同的类标识符和数据属性,类似于下面的代码: <ul> <li class="list" data-id="123">One</li> <li class="list" data-id="124">Two</li> <li class="list" data-id="125">Three</li> <li class="list" da

我有一个长的动态生成列表,每个列表都具有相同的类标识符和数据属性,类似于下面的代码:

<ul>
    <li class="list" data-id="123">One</li>
    <li class="list" data-id="124">Two</li>
    <li class="list" data-id="125">Three</li>
    <li class="list" data-id="126">Four</li>
    .....etc
</ul>
然后通过ajax将其传递到页面,并检查id是否存在于数据库中

var delimited_data="";
$('.list').each(function(){
    delimited_data+=$(this).data('id')+"|";
});
console.log(delimited_data);
我问这个问题的原因是,我正在开发一个实时系统,该系统会在10分钟后自动将列表列中的项目部署给不同的用户。我只需要确定代码是否正确:)

我还需要检查页面上是否没有
.list
类(即-无法进行查询)是否
分隔的\u数据将完全为空,我很确定这将是空的


在这种情况下,有没有比使用
.each()
更好的方法,因为我发现它可能会非常慢。请记住,上述函数将每30秒运行一次。

您可以使用
.map
返回数组:

var dataList = $(".list").map(function() {
    return $(this).data("id");
}).get();

console.log(dataList.join("|"));
演示:

使用以下命令:

var array = [];

$('li.list').each(function() {
  array.push($(this).data('id'));
})

var joined = array.join('|');

这不是对你问题的回答,但这就是我在本页上搜索的内容,尽管它会帮助其他人:-)

这将返回模拟输入的对象数组

干杯

要检查是否存在
.list
,请检查
.list
的长度。这似乎是一种非常简洁的方法—以前没有使用过.map()
var array = [];

$('li.list').each(function() {
  array.push($(this).data('id'));
})

var joined = array.join('|');
var arrayOfObj = $('input').map(function() {

  return {
            name : $(this).attr('name'),
            data : $(this).data('options'),
            value : $(this).val(),
            id : $(this).attr('id')
         }

}).get();
console.log(arrayOfObj)