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能被广泛应该的原因(选择器好)。
滚动也不难。
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类名的区别的主要内容,如果未能解决你的问题,请参考以下文章
php __CLASS__get_class()与get_called_class()的区别