如何识别没有id的html元素并使用javascript应用它

时间:2015-02-04 18:02:12

标签: jquery html

我想为没有id的html元素应用id。这将有助于基于id自动测试运行。

3 个答案:

答案 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)
        }
    }
});

不知道是否推荐它......