创建与CSS选择器匹配的元素?

时间:2015-02-18 12:17:02

标签: javascript css-selectors

我想创建一个函数,它允许我创建一个具有指定CSS路径的元素,作为第一个参数的字符串传递。

使用示例:

createElement('span.top-navigation > div.menuOne > a[target="_blank"]');

应创建一个始终与该CSS选择器匹配的元素。


到目前为止,我正在考虑将选择器分解为其组件部分,所以类,id,子项,后代等等。然后针对每个渐进式选择器进行测试以查看该元素是否存在,例如。给定输入span#navigation.align-top > div.menu > div.menuItem,它将针对以下每个

进行测试
  1. span ------------------------------------------ ------------------结果
  2. span#navigation ------------------------------------------ --found
  3. span#navigation.align-top ------------------------------结果
  4. span#navigation.align-top > div ---------------------不存在
  5. span#navigation.align-top > div.menu
  6. span#navigation.align-top > div.menu > div
  7. span#navigation.align-top > div.menu > div.menuItem
  8. 反过来,找到第一个不存在的元素。

    如果无法找到第4项,那么该函数将创建一个元素div并将其附加到span#navigation.align-top,为其分配一类菜单,然后创建另一个div元素,赋值它类menuItem,然后将它附加到先前创建的元素。

    我只是觉得这看起来非常复杂,必须有一种更简单,更有效的方法。

    即使没有更好的算法/预先构建的函数,解释如何改进我当前的概念,或警告我CSS选择器的奇怪之处,将不胜感激。

    感谢。


    TL; DR

    有没有办法基于CSS路径简单地创建元素?

0 个答案:

没有答案