本教程分享:《classlist》
如何用javascript为元素添加class
现代浏览器写法:
document.getElementById('test').classList.add('myClass');
兼容写法:
document.getElementById('test').className += ' myClass';
classlist这个api提供了什么css类属性方法
add( String [, String] )
添加指定的class。如果class在元素上已经存在,则忽略。
remove( String [,String] )
移除指定的class
item ( Number )
返回指定下标的class
toggle ( String [, force] )
如果只指定第一个参数: 切换class的值,例如:如果class存在,则删除这个class的值,否则,添加该class的值。
当第二个参数指定时,如果为true,就添加第一个参数中指定的class,如果为false,就删除该class。
contains( String )
检查元素的class属性中是否包含该class
示例:
// div is an object reference to a
div.classList.remove("foo");
div.classList.add("anotherclass");
// if visible is set remove it, otherwise add it
div.classList.toggle("visible");
// add/remove visible, depending on test conditional, i less than 10
div.classList.toggle("visible", i
alert(div.classList.contains("foo"));
// add or remove multiple classes
div.classList.add("foo", "bar");
div.classList.remove("foo", "bar");
js报错,Uncaught TypeError: Cannot read propert...
你好,你把代码放到window.οnlοad=function(){...}里面试试看,如果页面还没加载到go按钮而且你代码是放在go按钮的前面,你就调用了getElementById,返回的对象是undefined
classlist兼容哪些浏览器
classlist.add在移动端存在兼容性因为`.manage2`样式是在事件中添加到#manage元素的,第二段代码执行时该元素尚未被赋予.manage2样式,所以获取不到这个元素也没添加有效的事件。看你这段代码,.manage1、.manage2应该都是id为manage的元素
原生js判断某个元素是否有指定的class名的几种方法
如果不考虑兼容IE10以下的话,可以用HTML5中的classList API,非常方便:
var node = document.getElementById('demo');
if(node.classList.contains('test')){
console.log('包含 test 这个class');
}
兼容的方式是采用className和getAttribute('class')方法:
if (node.getAttribute('class')) { // 存在class属性
// 方式1
if (node.getAttribute('class').indexOf('test') > -1) {
console.log('包含 test 这个class');
}
// 方式2
if (node.className.indexOf('test') > -1) {
console.log('包含 test 这个class');
}
}
html的classlist和 classname有啥不同
classList 属性返回元素的类名,作为 DOMTokenList 对象。
该属性用于在元素中添加,移除及切换 CSS 类。
classList 属性是只读的,但你可以使用 add() 和 remove() 方法修改它。
javascript中classlist的问题
为什么会报出Cannotreadproperty'classList'ofundefinedatHTMLButtonElement.btn.onclick这样的错呢?...
先价检查 rotaGroup[k] 是否是HTML dom 对象
然后检查 浏览器是否支持
追问
谢谢您,我已经知道问题了,这是一个闭包问题了,DOM方面没有问题,是因为有一个onclick事件在里面,for循环全部循环完毕之后才会执行onclick,所以之后的k值一直都是lan
Uncaught TypeError: Cannot read property 'undef...
varjsonArr=[{"first_id":"2","first_name":"高中","third_id":"2-1-1","third_name":"一年级一班","second_id":"2-1","second_name":"一年级","people":31,"age":10,"parent":5}];上...
var jsonArr = [ {
"first_id" : "2",
"first_name" : "高中",
"third_id" : "2-1-1",
"third_name" : "一年级一班",
"second_id" : "2-1",
"second_name" : "一年级",
"people" : 31,
"age" : 10,
"parent" : 5
}];
上面例子 报js错误
下面这个例子也不行(Uncaught TypeError: Cannot read property 'id' of undefined),因为我实际用起来id不是按照2,2-1-1,2-1,是具体数字比如下面的例子
var jsonArr= [{
"first_id" : "1019",
"first_name" : "你",
"second_id" : "1021",
"second_name" : "是",
"third_id" : "2019",
"third_name" : "谁",
"people" : 0.00
} ];
//可以帮忙看看?麻烦了
操作无法完成,因为文件已经在classList中打开是什...
操作无法完成,因为文件已经在classList中打开是什么意思,桌面有文件删不了,这个意思就是虽然你关闭的这个软件,但是软件依旧在后台运行,所以无法删除,可以重启机器,然后删除,无法删除可以用安全软件中的粉碎功能来彻底删除的