我有一个ID如下的元素列表:

<li id="item_1">Item 1</li>
<li id="item_2">Item 2</li>
<li id="item_4">Item 4</li>


现在,如果要向列表中添加另一个元素,我想按数字顺序查找第一个可用/缺失的ID。因此,在这种情况下,它将是item_3,然后将其插入item_2item_4之间。

像这样吗

var myArray = [];

$('li').each(function(e) {
  var myID = e.id;
  myArray.push(myID.substring(myID.length -1));
});

//Find the first available/missing number using the array somehow?

最佳答案

像这样:

function getNextId() {
    var nextId;
    $('li').each(function(i,el) {
        var nameId = el.id.split("_")[1];
        if (i + 1 < nameId) {
            console.log("Found",i,nameId,el);
            nextId = i;
            // return false will break jquery each loop
            return false;
        }
    });
    // nextId is 0 based so 0 is first element
    return nextId+1;
}

console.log(getNextId());


工作示例:http://jsfiddle.net/YDwy3/

10-06 08:04
查看更多