Javascript JS或Jquery创建唯一的span ID
我正在创建一个内部带有跨距的li项目。我在span中构建了一个onclick函数来获取父li的ID,并将其传递到JSON get请求中。我不确定如何创建一个唯一的ID并在JS函数中读取它。因为这是动态构建的,所以我没有构建交换机,但我觉得我缺少了另一个选项。 这里的问题是,我无法捕获Li ID。我尝试过这个,也尝试过基于类,但似乎都失败了 Li对象创建:Javascript JS或Jquery创建唯一的span ID,javascript,jquery,html,Javascript,Jquery,Html,我正在创建一个内部带有跨距的li项目。我在span中构建了一个onclick函数来获取父li的ID,并将其传递到JSON get请求中。我不确定如何创建一个唯一的ID并在JS函数中读取它。因为这是动态构建的,所以我没有构建交换机,但我觉得我缺少了另一个选项。 这里的问题是,我无法捕获Li ID。我尝试过这个,也尝试过基于类,但似乎都失败了 Li对象创建: $("#jdLists").append('<li class="bigger" id = "' + item.ID + '">'
$("#jdLists").append('<li class="bigger" id = "' + item.ID + '">'+
item.GROUP_NAME +
'<span title="Remove from list" class=" Sp icon icon-color icon-plus" style="float: right; vertical-align: middle;" '+
'onclick="spAdd()"></span>' +
'</li>');
试着这样做:
// Should work for most cases
function uniqId() {
return Math.round(new Date().getTime() + (Math.random() * 100));
}
// Create elements properly and attach click event
// before appending to DOM so it delegates the event
var $li = $('<li/>', {
'class': 'bigger',
id: uniqId()
});
var $span = $('<span/>', {
'class': 'Sp icon icon-color icon-plus',
title: 'Remove from list',
text: 'I\'m a span',
click: function() {
alert( $(this).parent().attr('id') );
}
});
$('#jsLists').append( $li.append( $span ) );
//应该适用于大多数情况
函数uniqId(){
返回Math.round(new Date().getTime()+(Math.random()*100));
}
//正确创建图元并附着单击事件
//在附加到DOM以使其委托事件之前
变量$li=$(“”{
“类”:“更大”,
id:uniqId()
});
变量$span=$(''{
'class':'Sp icon icon color icon plus',
标题:“从列表中删除”,
文字:“我是一个跨度”,
单击:函数(){
警报($(this.parent().attr('id'));
}
});
$('#jslist').append($li.append($span));
它应该在单击时提醒li的随机id。也可以为这些样式添加另一个类,而不是内联css;更好、更简单、更容易
演示:(ctrl+enter可刷新并获取新id)下划线为此类情况提供了一个功能。它不需要处理日期和随机数,而是保留一个全局计数器,并在每次调用函数时递增:
var idCounter = 0;
_.uniqueId = function(prefix) {
var id = '' + ++idCounter;
return prefix ? prefix + id : id;
};
该函数没有任何作用;它获取“id”的值,但它对它没有任何作用。你如何维护这样的代码?!这是正确的,当我在浏览器中观看时,它也不会获取值,我假设这是因为它不知道哪个li正在发送请求。我没有添加任何其他内容,因为this@elclanrs是的,现在很混乱,只是因为我正在让这个概念发挥作用,但是谢谢,我现在就把它清理干净,它失控了,什么时候调用了
spAdd
,什么调用它?在那个函数中,这个假定是什么?太棒了,它工作得很好。关于如何在Jquery中构造li和span对象的文档有哪些。我需要确保我了解这一点,以备将来使用usage@atlMapper:这是它的文档。这是jQuery方法。
var idCounter = 0;
_.uniqueId = function(prefix) {
var id = '' + ++idCounter;
return prefix ? prefix + id : id;
};