Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 定义<;李>;元素<;ul>;jquery可排序后的列表_Javascript_Jquery_Indexing_Html Lists_Jquery Ui Sortable - Fatal编程技术网

Javascript 定义<;李>;元素<;ul>;jquery可排序后的列表

Javascript 定义<;李>;元素<;ul>;jquery可排序后的列表,javascript,jquery,indexing,html-lists,jquery-ui-sortable,Javascript,Jquery,Indexing,Html Lists,Jquery Ui Sortable,我希望你能帮我解决一个小问题。在我的代码中,我想重命名ul列表的元素id,它们是按jquery sortable排序的,但是它不能正常工作。有时它可以工作,但有时只是一个错误:“UncaughtTypeError:无法读取null的属性'id',它的重命名方式是:1-2-3-4-5-6-6-8。也许你可以帮我一下 这是我的ul: <ul class="example"> <li id="1" class="example"></li> <

我希望你能帮我解决一个小问题。在我的代码中,我想重命名ul列表的元素id,它们是按jquery sortable排序的,但是它不能正常工作。有时它可以工作,但有时只是一个错误:“UncaughtTypeError:无法读取null的属性'id',它的重命名方式是:1-2-3-4-5-6-6-8。也许你可以帮我一下

这是我的ul:

<ul class="example">
    <li id="1" class="example"></li>
    <li id="2" class="example"></li>
    <li id="3" class="example"></li>
    <li id="4" class="example"></li>
    <li id="5" class="example"></li>
    <li id="6" class="example"></li>
</ul>
下面是我的js,用于获取实际索引和重命名li id:

function myFunction(){
    var lenght = $(".example").length;
    lenght = lenght -1;

    for (var i=1; i<=lenght; i++){
        var newIn = $('#'+i).index();
        newIn = newIn +1;
        var inold = document.getElementById(i).id;


    if(newIn != inold){
        var change = document.getElementById(i).id = newIn;
        }
    }
}
函数myFunction(){
变量长度=$(“.example”).length;
长度=长度-1;

对于(var i=1;i谢谢你的提示CBroe!它现在起作用了

    function myFunction(){
$(".example").each(function(i) {
    var row = $(this)
    row.attr('id', '' + i);
});
}

当您有重复id的列表或没有连续id(3,2,4,1,6)时发生此错误,此处缺少“5”,您只是通过访问序列号“i”来替换id,因此当我到达5时,然后是“document.getElementById(i).id”这将为您提供'-1',因为没有id=5的li。我希望此代码将帮助您解决问题

function myfunction(){
$("li.example").each(function() {
        var currentId = $(this).attr("id"); //id of each li
        var newIn = $(this).index(); //index of each li starts from 0
        newIn++;
        if(currentId!==newIn)
        {
            $(this).attr("id",newIn);
        }
    });
}

我很确定不能以数字开始id名称。为什么一方面要使用jQuery,另一方面要恢复到普通的老式“香草”JavaScript?一个简单的jQuery
。each()
的LI子元素上循环。例如
元素将当前索引(加1)设置为当前元素的id就可以了。
function myfunction(){
$("li.example").each(function() {
        var currentId = $(this).attr("id"); //id of each li
        var newIn = $(this).index(); //index of each li starts from 0
        newIn++;
        if(currentId!==newIn)
        {
            $(this).attr("id",newIn);
        }
    });
}