javascript - jQuery 是否具有与 Prototype 的 Element.identify 等效的功能?

标签 javascript jquery ajax dom prototypejs

是否有内置方法或事实上的默认插件可以让您自动为 jQuery 中的元素分配唯一 ID,或者您是否需要自己实现类似的东西?我正在寻找相当于 Prototype's identify method 的 jQuery

这是一个例子。我在页面上有一些 HTML 结构,看起来像这样

<span id="prefix_1">foo bar</span>
...
<div id="foo">
   <span></span>
   <span></span>
   <span></span>
</div>

我想为每个跨度分配一个页面唯一的 ID。所以在调用这样的东西之后

$('#foo span').identify('prefix');   //fake code, no such method

渲染的 DOM 看起来像这样

<span id="prefix_1">foo bar</span>
...
<div id="foo">
   <span id="prefix_2"></span>
   <span id="prefix_3"></span>
   <span id="prefix_4"></span>
</div>

对于 jQuery 是否有任何官方的/健壮的东西,或者这是大多数 jQuery 开发人员自己推出的东西?

最佳答案

jQuery.fn.identify = function(prefix) {
    var i = 0;
    return this.each(function() {
        if(this.id) return;
        do { 
            i++;
            var id = prefix + '_' + i;
        } while($('#' + id).length > 0);            
        $(this).attr('id', id);            
    });
};

$('span').identify('test');

对此进行了测试:

<span id='test_2'></span>
<span>test1</span>
<span>test2</span>
<span>test3</span>

将其转换为:

<span id="test_2"></span>
<span id="test_1">test1</span>
<span id="test_3">test2</span>
<span id="test_4">test3</span>

关于javascript - jQuery 是否具有与 Prototype 的 Element.identify 等效的功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/470772/

相关文章:

javascript - ReactJS中输入类型radio的OnChange函数?

java - 在批处理文件中运行多个 jar 文件

javascript - ionic 获取拖动坐标

javascript - 使用 jQuery 在另一个列表后添加一个列表元素

javascript - 克隆时如何计算输入名称 [0] 到名称 [1]

javascript - validateLogin 是一个未定义的函数。(javascript 异常)

javascript - typescript 错误: Function declarations are not permitted in blocks in strict mode

javascript - jQuery 根据内部元素值按字母和数字顺序对无序列表进行排序

php - Laravel中使用ajax点击按钮时如何更新数据?

jquery - 简单的 WordPress AJAX 分页