Javascript获取一组类名并将它们添加为ID

Javascript获取一组类名并将它们添加为ID,javascript,Javascript,Javascript有没有办法将#链接中的所有类名存储到一个数组中,并使用循环为每个类分配一个ID 下面是以前的 <div id="links"> <a href="/somelink" class="aj51">some link</a> <a href="/somelink" class="aj53">some link</a> <a href="/somelink" class="aj52">s

Javascript有没有办法将#链接中的所有类名存储到一个数组中,并使用循环为每个类分配一个ID

下面是以前的

<div id="links">
    <a href="/somelink" class="aj51">some link</a>
    <a href="/somelink" class="aj53">some link</a>
    <a href="/somelink" class="aj52">some link</a>
    <a href="/somelink" class="aj54">some link</a>
</div>

在javascript之后

<div id="links">
    <a href="/somelink" class="aj51" id="aj51">some link</a>
    <a href="/somelink" class="aj53" id="aj53">some link</a>
    <a href="/somelink" class="aj52" id="aj52">some link</a>
    <a href="/somelink" class="aj54" id="aj54">some link</a>
</div>

这里有两种简单的方法可以使用JavaScript(无jQuery)实现。当然,这假设每个元素只有一个类

var elem = document.getElementById('links');
for (var i = 0; i < elem.getElementsByTagName('a').length; i++) {
    elem.getElementsByTagName('a')[i].setAttribute('id',elem.getElementsByTagName('a')[i].className)
}

绝对地您尝试过什么?您是否需要一个数组来做某事,或者您只是假设您需要一个数组来做这件事(您没有)?假设每个元素都有一个唯一的类名(尽管如果一个元素上有多个类会发生什么情况?)看起来您有一个生成内容的服务器端脚本:为什么不修改该脚本以生成
id
s而不是
class
-es?未测试:
$('#links')。children('a')。each(function(){$(this).attr('id',$(this.attr('class');})
var links = document.getElementById('links').getElementsByTagName('a');
Array.prototype.map.call(links, function (el) {
    el.setAttribute('id',el.className)
});