Каким будет наилучший способ генерации всех возможных комбинаций селектора CSS 2 для элемента DOM в контексте текущего состояния document
?
Например: Для следующего MarkUp
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<title></title>
</head>
<body>
<div id="content">
<ul>
<li>a</li>
<li>b</li>
<li class="last-li">c</li> <!--ARGUMENT ELEMENT-->
</ul>
</div>
</body>
</html>
Метод JS/jQuery, так что <!--ARGUMENT ELEMENT-->
в вышеупомянутой разметке задается как аргумент метода, он возвращает все возможные комбинации выбора CSS 2 для аргумента в форме массива. Необязательный параметр может быть добавлен к методу, который определит максимальную глубину вложения CSS2 Selector Nesting. Если этот параметр установлен в false, он должен возвращать все возможные комбинации (Будет ли hogger производительности, если установлено значение false)
Результат:
[
".last-li",
"li.last-li",
"ul .last-li",
"ul li.last-li",
"div ul .last-li",
"div ul li.last-li",
"#content ul .last-li",
"#content ul li.last-li",
"div#content ul .last-li",
"div#content ul li.last-li",
"body div ul li.last-li",
"body div ul .last-li",
"body #content ul li.last-li",
"body div#content ul .last-li",
"body div#content ul li.last-li",
]
Любые указатели в этом отношении будут чрезвычайно полезны.