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