我想为没有id的html元素应用id。这将有助于基于id自动测试运行。
答案 0 :(得分:5)
加载DOM后,您可以执行以下操作:
var elems = document.body.getElementsByTagName("*");
var counter = 0;
for (var i = 0; i < elems.length; i++) {
if (!elems[i].id) {
elems[i].id = "_custom_" + counter++;
}
}
这将添加如下id值:
_custom_0
_custom_1
_custom_2
依此类推任何尚未分配id的元素。
注意:这是仅在文档正文中查看的代码(假设您不希望为<head>
部分中的代码分配ID),但您可以将其更改为适用于所有地方。
答案 1 :(得分:1)
这将是一种jQuery方式。
$('body *:not([id])').attr('id', function(i) {
return 'someid_' + i;
});
[id^=someid]{
color:red;
}
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id='e1'>1</div>
<div>2</div>
<div>3</div>
<div id='e2'>4</div>
<div>5</div>
<div id='e3'>6</div>
答案 2 :(得分:0)
HTML:
<span>1</span>
<span>2</span>
<span>3</span>
jquery的:
$(document).ready(function () {
for (i=1;i<=$('span').length;i++) {
if (!$('span:nth-child('+i+')').attr('id')){
$('span:nth-child('+i+')').attr('id','id'+i)
}
}
});
不知道是否推荐它......