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