js获取id号和class类名的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了js获取id号和class类名的区别相关的知识,希望对你有一定的参考价值。

在很多时候我们用的都是js来取得id的号:用document.getElementById("id")这样,如果是取得class类名呢,怎么用写呢,谢谢了!

原生JS通过id和class获取元素是用,document.getElementById(IDname),document.getElementsByClassName(\'ClassName\');

    兼容性:ID兼容,class 不兼容IE6,7,8

    数量: 通过ID只能获取一个dom元素,通过class可以获取一组元素。

    通用性:ID不能重复,class可以重复,所以class比较好用,这也是jQuery能被广泛应该的原因(选择器好)。

参考技术A 获取元素还是class来得快,用id,如果是你说的上千个文档,那是不现实的。

滚动也不难。

1 如果是id,可以直接用js取出来id,然后使用

window.location = window.location+'#获取到的ID'

这样滚动到锚点。

2 如果是class,那就用

var l = document.getElementsByClassName('类名称');
for(var i=0;i<l.length;i++)
if(!l[i].id)
l[i].setAttribute('id', 'mark'+i);



也就是先获取到所有的class元素,再给没有id属性的元素添加一个id,最后执行1的操作就可以了。
参考技术B 这要用到框架了 prototype就有这样的方法 getElementsByClassName()本回答被提问者采纳 参考技术C document.getElementsByTagName("class")
返回的是一个数组

通过js获取class类名的函数封装

通过className获取元素,不同的浏览器会有不同的支持情况,所以为了兼容各个浏览器在这里,我写了几个函数获取className的值

function byclass(classn){//全局获取类
var tags=document.all ? document.all : document.getElementsByTagName(‘*‘);
var arr=[];
for (var i = 0; i < tags.length; i++) {
//获取只有一个类名的元素
if (tags[i].className==classn) {
arr.push(tags[i]);
}
};
return arr;
}


function byclass2(classn){//全局获取类
var tags=document.all ? document.all : document.getElementsByTagName(‘*‘);
var arr=[];
for (var i = 0; i < tags.length; i++) {
//可获取有多个类名的元素
if (tags[i].className.indexOf(classn)!=-1) {
arr.push(tags[i]);
}
};
return arr;
}
function getclass(parentID,classn){//局部获取类
var parent=document.getElementById(parentID);
var tags=parent.all?parent.all:parent.getElementsByTagName(‘*‘);
var arr=[];
for (var i = 0; i < tags.length; i++) {
//获取只有一个类名的元素
if (tags[i].className==classn) {
arr.push(tags[i]);
}
};
return arr;
}
function getclass2(parentID,classn){//局部获取类
var parent=document.getElementById(parentID);
var tags=parent.all?parent.all:parent.getElementsByTagName(‘*‘);
var arr=[];
for (var i = 0; i < tags.length; i++) {
//可获取有多个类名的元素
if (tags[i].className.indexOf(classn)!=-1) {
arr.push(tags[i]);
}
};
return arr;
}














































以上是关于js获取id号和class类名的区别的主要内容,如果未能解决你的问题,请参考以下文章

CSS中的“class”里的样式属性是不是能够有多个?

通过js获取class类名的函数封装

php __CLASS__get_class()与get_called_class()的区别

java中类名.class, class.forName(), getClass()区别

怎样用JS获取CSS中class中的值

java中Class对象详解和类名.class, class.forName(), getClass()区别