我正在创建一个内部有 span 的 li 项目。我在 span 中构建了一个 onclick 函数来获取父 li 的 ID 以传递到 JSON get 请求中。我不确定如何创建唯一 ID 并在 JS 函数中读取它。由于这是动态构建的,所以我没有构建开关,但我觉得我缺少另一个选项。 这里的问题是我无法捕获 Li ID。我试过这个,也试过基于类,但似乎都失败了。
Li 对象创建:
$("#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>');
点击函数:
function spAdd() {
$(this).closest("li").attr('id');
}
最佳答案
像这样尝试:
// 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 ) );
它应该在点击时提醒 li 的随机 id。另外,不是内联 css,而是为这些样式添加另一个类;更好、更简单、更容易。
演示: http://jsbin.com/avevim/1/edit (ctrl+enter刷新获取新id)
关于javascript - JS 或 Jquery 创建唯一的 span ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14044178/