是否有内置的方法或defacto默认插件,将允许您自动为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>