Jquery .uniqueId() 为小部件分配一个已使用的 id

标签 jquery jquery-ui

如果我的页面中有现有的 HTML:

<p id="ui-id-1">foo</p>

然后我运行 JS 代码:

 $('<p>bar</p>').appendTo('body').uniqueId();  

然后,新的 p 元素获得 ID ui-id-1。我希望 JQuery UI 足够智能来分配未使用的 id?我做错了什么还是这是设计的 JQuery UI 行为?

最佳答案

您始终可以采取解决方法来满足您的需求。

var uniqueId = $.fn.extend({
  uniqueId: (function() {
    var uuid = 0;
    return function() {
      return this.each(function() {
        this.id = (function r() {
          return !$("#ui-id-" + (++uuid)).length ? "ui-id-" + uuid : r();
        })();
      });
    };
  })()
});
$('<p>bar</p>').appendTo('body').uniqueId();
$('<p>bar</p>').appendTo('body').uniqueId();
$('<p>bar</p>').appendTo('body').uniqueId();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p id="ui-id-1">foo</p>
<p id="ui-id-3">foo</p>

注意:我没有添加removeUniqueId的源,如果您使用removeUniqueId中的功能,您可以从源添加它。

关于Jquery .uniqueId() 为小部件分配一个已使用的 id,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48853619/

相关文章:

javascript - 为任何聚焦元素触发按键点击事件

javascript - jQuery UI slider 更改 "max"值

jquery-ui - Jquery UI 自动完成 IE 7 问题

javascript - 如何从javascript多维数组中检索值

javascript - 在 Highcharts 中显示默认的 Drilldown

javascript - 删除子div

javascript - 更改 jQuery UI 模式对话框的堆栈顺序

javascript - <img> src 属性不使用 Jquery 改变

javascript - 无需页面加载即可提交帖子表单

javascript - 如何在水平滑动器(idangero swiper)中启用垂直滚动?