Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/388.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.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
将类更改应用于所有getElementsByTagName-纯JavaScript_Javascript_Html - Fatal编程技术网

将类更改应用于所有getElementsByTagName-纯JavaScript

将类更改应用于所有getElementsByTagName-纯JavaScript,javascript,html,Javascript,Html,我只想使用JavaScript,而不是jQuery 我有两个问题,首先我想正确地将class属性应用/删除到ul中的每个li元素 理想情况下,当一个li元素有一个类集时,其余元素没有类属性setremove if set-但是从我的测试中,当我需要从元素中取消设置/删除一个类时,我只能设置类,如class=,这很有效,但并不理想 我已经能够通过getElementsByTagName获得ul的刮子元素id 最好的方法是什么?因为这是迭代对象而不是数组的方式 标准for循环将仅返回您期望的结果:

我只想使用JavaScript,而不是jQuery

我有两个问题,首先我想正确地将class属性应用/删除到ul中的每个li元素

理想情况下,当一个li元素有一个类集时,其余元素没有类属性setremove if set-但是从我的测试中,当我需要从元素中取消设置/删除一个类时,我只能设置类,如class=,这很有效,但并不理想

我已经能够通过getElementsByTagName获得ul的刮子元素id


最好的方法是什么?

因为这是迭代对象而不是数组的方式

标准for循环将仅返回您期望的结果:

for (var i = 0; i < li.length; i++) {
    alert(li[i]["id"]);
}
要仅删除特定类,请执行以下操作:

li[i].classList.remove("classNameHere");
如果要删除整个元素属性而不仅仅是重置类,请使用:

li[i].removeAttribute("class");

在这里查看所有三个示例:

,因为这是迭代对象而不是数组的方式

标准for循环将仅返回您期望的结果:

for (var i = 0; i < li.length; i++) {
    alert(li[i]["id"]);
}
要仅删除特定类,请执行以下操作:

li[i].classList.remove("classNameHere");
如果要删除整个元素属性而不仅仅是重置类,请使用:

li[i].removeAttribute("class");
请参见此处的所有三个示例:

使用标准for循环而不是for in循环,这样您只需点击数字属性

for (var i = 0; i < li.length; i++)
当前,您正在点击所有属性,例如,li['length']。

使用标准for循环而不是for in循环,因此您只点击数字属性

for (var i = 0; i < li.length; i++)

当前您正在访问所有属性,包括,例如,li['length']。

getElementsByTagName不返回数组,它返回节点列表。@Quentin是的,它返回。好的,一个节点列表,它的行为完全类似于一个数组。@Shomz谢谢,这是可行的,但是您建议我如何删除所有类属性,这是将类设置为空的唯一方法?@Shomz-它与数组不完全一样。尝试使用。拼接。@gummage不客气。我给您写了一个示例,说明如何删除所有类以及如何删除特定类。getElementsByTagName不返回数组,它返回节点列表。@Quentin是的,它返回数组。好的,一个节点列表,它的行为完全类似于一个数组。@Shomz谢谢,这是可行的,但是您建议我如何删除所有类属性,这是将类设置为空的唯一方法?@Shomz-它与数组不完全一样。尝试使用。拼接。@gummage不客气。我给你写了一个如何删除所有类以及如何删除特定类的示例。谢谢,这很有效,但你会建议我如何删除所有类属性,这是将类设置为空的唯一方法?@gummage-这是最简单的方法。谢谢,这很有效,但是你会建议我如何删除所有类属性,将类设置为空是唯一的方法吗?@gummage-这是最简单的方法。