如果我的页面中有现有的 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/