javascript获取类名

javascript获取类名,javascript,Javascript,为什么: var isError = document.getElementById('companyName-element').getElementsByTagName('ul'); console.log(isError); 在firebug中返回[ul.errors] 鉴于: var isError = document.getElementById('companyName-element').getElementsByTagName('ul').className; console

为什么:

var isError = document.getElementById('companyName-element').getElementsByTagName('ul');
console.log(isError);
在firebug中返回
[ul.errors]

鉴于:

var isError = document.getElementById('companyName-element').getElementsByTagName('ul').className;
console.log(isError);
返回
“未定义”。


为什么不返回
'errors'

getElementsByTagName
返回元素列表

var isError = document.getElementById('companyName-element').getElementsByTagName('ul')[0].className;

我的第一个想法是getElementsByTagName的结果是一个数组,因此需要:

....getElementById('companyName-element').getElementsByTagName('ul')[0].className;
console.log(isError);
获取数组中的第一个元素

然而,这并没有经过研究或测试

   var isError = document.getElementById('companyName-element').getElementsByTagName('ul').className;
    console.log(isError);
这应该被替换为

var isError = document.getElementById('companyName-element').getElementsByTagName('ul')[0].className;
    console.log(isError);
getElementsByTagName(“ul”)将给出一个节点列表

getElementsByTagName()
返回元素的(节点)列表(),即使只有一个或没有匹配项

在第一个代码示例中,该列表有一个元素,即firebug向您显示的内容

在第二个示例中,您尝试访问列表(不是元素!)的属性
className
,该属性不存在,因此返回
undefined
。如果要访问该元素的
类名
,请使用以下命令:

var isError = document.getElementById('companyName-element').getElementsByTagName('ul')[0].className;
console.log(isError);

请注意,如果返回的元素不止一个,则可能需要使用循环。

jQuery不是一个选项?它是一个节点列表,而不是数组。正如我所说,未搜索。“这个解决方案应该仍然有效。”昆汀说得对,但是为了解决这个问题,我们可以把它当作一个数组来处理。不过,我已经更正了答案。