N-ZOO / everycode

前端每日一练
163 stars 18 forks source link

[js] 获取页面上所有的 className 并且去重 #22

Open VaJoy opened 7 years ago

VaJoy commented 7 years ago

最终得到一个数组 实现方式多,但要尽量写的好看一点哦~

li2568261 commented 7 years ago
let allClassName = ()=>{
            let className = new Set();
            let hasClassEl = document.querySelectorAll('[class]');
            [].forEach.call(hasClassEl,(v,i)=>{
                let classArr = v.getAttribute("class").split(' ');
                classArr.map(name => className.add(name));
            })
            return [...className]
        }
akaxiaok commented 7 years ago
function getClass() {
    let classes = [];
    Array.from(document.querySelectorAll('[class]')).forEach(node=> {
            classes = classes.concat(node.className.split(' '));
    });
    return Array.from(new Set(classes));
}
decadeheart commented 7 years ago
    function getClassNames(){
        var classes=document.querySelectorAll('[class]'),i;
        var classNames=[];
        for(i=0;i<classes.length;i++){
            classNames=classNames.concat(classes[i].className.split(''));
        }
        var classArray=Array.from(new Set(classNames))
        return classArray;
    }  
aolinpk commented 7 years ago
var classes = document.querySelectorAll('[class]');
classes = Array.prototype.slice.call(classes,0); 
var classNames = [];
classes.forEach(function(v,k) {
    classNames = classNames.concat(classes[k].className.split(''));
})
classNames = new Set(classNames);
ysjhnuitanfei commented 6 years ago

有没有大神带带我学前端

Jiasm commented 6 years ago
[...new Set(Array.from(document.querySelectorAll('[class]')).map(({className: c}) => c).join(' ').split(' '))]
uinz commented 6 years ago
function allClassName() {
  const classNames = [...document.querySelectorAll("[class]")].reduce(
    (list, node) => [...list, ...node.classList.values()],
    []
  );
  return [...new Set(classNames)];
}