className在Javascript中返回未定义的
有很多类似的问题和答案,但在尝试了所有的解决方案后,我无法找出我的代码出了什么问题 这是我的密码className在Javascript中返回未定义的,javascript,Javascript,有很多类似的问题和答案,但在尝试了所有的解决方案后,我无法找出我的代码出了什么问题 这是我的密码 var x = document.getElementsByClassName('xclass1 xclass2 xclass3'); console.log(x); x.className += ' class4'; console.log(x); console.log(x.className); 以下是第一个console.log中显示的内容: [a.xclass1.xclass2.xcla
var x = document.getElementsByClassName('xclass1 xclass2 xclass3');
console.log(x);
x.className += ' class4';
console.log(x);
console.log(x.className);
以下是第一个console.log中显示的内容:
[a.xclass1.xclass2.xclass3]
[a.xclass1.xclass2.xclass3, className: "undefined class4"]
它表明它找到了正确的元素
下面是第二个console.log中显示的内容:
[a.xclass1.xclass2.xclass3]
[a.xclass1.xclass2.xclass3, className: "undefined class4"]
第三个返回这个:
undefined class4
谁能解释一下为什么className
返回未定义的?我在这里完全迷路了请看下面的代码片段
返回undefined,因为您试图为包含元素而非实际元素的对象数组控制台类
var x=document.getElementsByClassName('xclass1 xclass2 xclass3');
控制台日志(x);
x[0].类名+='class4';
控制台日志(x);
console.log(x[0].className)代码>
请参见下面的代码片段
返回undefined,因为您试图为包含元素而非实际元素的对象数组控制台类
var x=document.getElementsByClassName('xclass1 xclass2 xclass3');
控制台日志(x);
x[0].类名+='class4';
控制台日志(x);
console.log(x[0].className)代码>
GetElementsByCassName
返回元素的集合,而不仅仅是一个,因为同一个类可以有多个元素。请看classList@AndrewLi非常感谢你!我刚想出来<代码>x[0]。类名+='class4'代码>修复ITI如果您确定某个页面上只有一个这样的元素,您可以执行var var x=document.getElementsByClassName('xclass1 xclass2 xclass3')[0];它应该尝试更改这个x[0].className+='class4'
到这个x[0].classList.push('class4')
现在,使用classList,您可以直接获得一个类数组,无需将字符串与classNamegetElementsByClassName
连接起来,返回一个元素集合,而不仅仅是一个,因为您可以在同一个类中有多个元素。请看classList@AndrewLi非常感谢你!我刚想出来<代码>x[0]。类名+='class4'代码>修复ITI如果您确定某个页面上只有一个这样的元素,您可以执行var var x=document.getElementsByClassName('xclass1 xclass2 xclass3')[0];它应该尝试更改这个x[0].className+='class4'
到这个x[0].classList.push('class4')
现在使用classList,您可以直接获得一个类数组,不需要将字符串与className连接起来