代码之家  ›  专栏  ›  技术社区  ›  angry kiwi

获取类属性中的所有类名

  •  0
  • angry kiwi  · 技术社区  · 7 年前
    let string = `
        <div class="camera"></div>
        <div class="cinema alibaba"></div>
    `
    

    如何获取所有类名并将它们放入数组中?

    预期结果: .

    2 回复  |  直到 7 年前
        1
  •  4
  •   Daria Pydorenko    7 年前

    您可以使用regex:

    let string = `
        <div class="camera"></div>
        <div class="cinema alibaba"></div>
    `
    
    let pattern = /.+?class="(.+?)".+?/g
    
    var match = pattern.exec(string);
    var arr = []
    
    while (match != null) {
      match[1].split(" ").forEach(x => arr.push(x));
      match = pattern.exec(string)
    }
    
    console.log(arr);
        2
  •  3
  •   Hyyan Abo Fakher JM1    7 年前

    不是最理想的解决方案,但是可以将HTML字符串附加到临时元素,然后选择所有元素以获取类名

    let str = `
        <div class="camera"></div>
        <div class="cinema alibaba"></div>
    `
    
    let temp = document.createElement('div')
    temp.style.display = 'none';
    temp.innerHTML = str;
    
    items = temp.querySelectorAll('*')
    let classes = [];
    items.forEach(item => {
      classes = classes.concat(item.className.split(" "))
    });
    
    console.log(classes);
    推荐文章