javascript - 查找所有 li 项的数据属性值的最大值

标签 javascript jquery html jquery-ui

<分区>

我有一个使用 Jquery UI Sortable 的列表。每个列表项都有一个特殊的 data-itemid 值,它是一个唯一的数字。用户可以将项目添加到此列表,然后对它们进行排序。我想找到 data-itemid 属性的最大值,无论它们在列表中的位置如何。

在我实现 Sortable 之前,我只能使用 $('li:last-child').data('itemid') 获取 last-child 的值,但在集成排序功能之后,最后一个 child 可能没有最大值。

我的代码如下:

HTML

<ul id='sortable'>
   <li data-itemid='1'>One</li>
   <li data-itemid='2'>Two</li>
</ul>

Javascript

$(document).ready(function(){
  maxItemId = $('li:last-child').data('itemid');
  alert('Max Item Id is: ' + maxItemId);
});

我想我可以遍历每个 li 项目并寻找具有最大 Id 的项目,我希望有更好的替代方案。

最佳答案

像这样的东西应该可以完成工作:

var max = 0;
$('#sortable li').each(function(){
    var val = $(this).data('itemid');
    if(val > max) max = val;
});
alert(max);

另一个想法是在修改后检查,如果最后一个元素更大并且您的用户在列表的 和 中添加了一个新元素,您可以只检查这两个:

var max = $('li:last-child').prev().data('itemid');
var lastValue = $('li:last-child').data('itemid');
if(lastValue > max) max = lastValue;
alert(max);

但是如果你没有大量的 <li>要检查,我建议第一个更安全、更容易的。

希望对你有帮助

关于javascript - 查找所有 li 项的数据属性值的最大值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30878134/

相关文章:

php - 从 php 回显 javascript 不起作用?

javascript - Google 脚本 - Google 表格 - 需要修改脚本以跳过任何具有匹配变量的文本行

javascript - Angular js typescript 中的 Http promise

javascript - 在 flot 中创建图形中断

events - 将事件处理程序绑定(bind)到多个元素 jQuery?

html - 如何摆脱 td 的额外高度?

css - 如何在网页中显示手机壳背面(带有透明相机孔)等形状内的图像?

javascript - 如何在单击时仅选择图像的一部分

javascript - 循环 div 动画

Javascript:如何检查数组中的某些项目