Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
className在Javascript中返回未定义的_Javascript - Fatal编程技术网

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,您可以直接获得一个类数组,无需将字符串与className
getElementsByClassName
连接起来,返回一个元素集合,而不仅仅是一个,因为您可以在同一个类中有多个元素。请看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连接起来