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)