我想创建一个函数,它允许我创建一个具有指定CSS路径的元素,作为第一个参数的字符串传递。
使用示例:
createElement('span.top-navigation > div.menuOne > a[target="_blank"]');
应创建一个始终与该CSS选择器匹配的元素。
到目前为止,我正在考虑将选择器分解为其组件部分,所以类,id,子项,后代等等。然后针对每个渐进式选择器进行测试以查看该元素是否存在,例如。给定输入span#navigation.align-top > div.menu > div.menuItem
,它将针对以下每个
span
------------------------------------------ ------------------结果span#navigation
------------------------------------------ --found span#navigation.align-top
------------------------------结果span#navigation.align-top > div
---------------------不存在span#navigation.align-top > div.menu
span#navigation.align-top > div.menu > div
span#navigation.align-top > div.menu > div.menuItem
反过来,找到第一个不存在的元素。
如果无法找到第4项,那么该函数将创建一个元素div
并将其附加到span#navigation.align-top
,为其分配一类菜单,然后创建另一个div元素,赋值它类menuItem
,然后将它附加到先前创建的元素。
我只是觉得这看起来非常复杂,必须有一种更简单,更有效的方法。
即使没有更好的算法/预先构建的函数,解释如何改进我当前的概念,或警告我CSS选择器的奇怪之处,将不胜感激。
感谢。
有没有办法基于CSS路径简单地创建元素?