【发布时间】:2019-10-12 17:33:40
【问题描述】:
我想为放置在某个元素块之后的每个按钮添加一些事件侦听器。如果单击,此按钮旨在返回上一个元素块中的所有元素类。
我在这里找到了从 NodeList 获取类的脚本,https://gist.github.com/cssence/41c8279810b1db71670d.js
for (var k = 0; k < trigger.length; k++) {
trigger[k].addEventListener('click', function(e) {
nav.classList.toggle('hidden');
(function listAllUsedClassNames() {
var classNames = {};
Array.prototype.forEach.call(this.previousElementSibling.querySelectorAll("*"), function(element) {
if (typeof element.className === "string") {
element.className.split(" ").forEach(function(className) {
if (className) {
classNames[className] = true;
}
});
};
});
return Object.keys(classNames);
}());
}, false);
}
我想要一些数组包含单击按钮后返回的前一个块的所有类。如果结果是唯一的并且没有任何重复项会更好。
【问题讨论】:
-
你也想要前一个元素的嵌套元素类吗?
-
是否有任何解决方案,所以结果是唯一的,而不是重复的。我想在这里使用数组来获取一些元素样式。
-
您应该在发布问题时详细说明要求。
-
是的,我想要前一个元素的嵌套元素类。与 DOM 树一样深。但没有重复值。
标签: javascript css dom classname