Javascript获取一组类名并将它们添加为ID
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
<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)
});