javascript - JS 或 Jquery 创建唯一的 span ID

标签 javascript jquery html

我正在创建一个内部有 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/

相关文章:

html - 如何使用多个发送(请求)实现HTML5 WEB套接字

html - 如何根据HTML5语义命名div?

jquery - 为什么背景颜色没有改变?

javascript - 带有嵌套数组的微模板

javascript - 为什么第一个将其视为 bool 值而第二个不是?

javascript - 重复的功能,如何组合它们?

javascript - 使用图像映射导航栏实现平滑滚动

javascript - 如何使用 JavaScript 访问自定义 XHTML 属性?

javascript - 试图防止 jQueryMobile 滑动手势冒泡,但它不起作用

javascript - Google Apps 脚本 HTML 应用程序中的 Google 图表