Первая часть [решено]
С учетом этого HTML
<div id="search_filters">
<section class="facet clearfix"><p>something</p><ul>...</ul></section>
<section class="facet clearfix"><p>something1</p><ul>...</ul></section>
<section class="facet clearfix"><p>something2</p><ul>...</ul></section>
<section class="facet clearfix"><p>something3</p><ul>...</ul></section>
<section class="facet clearfix"><p>something4</p><ul>...</ul></section>
</div>
Я могу выбрать весь раздел с помощью
const select = document.querySelectorAll('section[class^="facet clearfix"]');
Результатсписок узлов с 5 дочерними элементами.
То, что я пытаюсь выполнить, - это выбрать только раздел , содержащий строку "thing3 ".
Это моя первая попытка:
`const xpathResult = document.evaluate( //section[p[contains(.,'something3')]],
select, null, XPathResult.ANY_TYPE, null );
Как я могу отфильтровать выделение, чтобы выбрать только узел , который мне нужен?
Вторая часть:
Извините, что обновляювопрос, но, похоже, это проблема из моего фактического навыка. Теперь, когда я получил узел, мне нужно работать над тем, что я должен сделать, это установить пользовательский порядок li в разделах:
<ul id="" class="collapse">
<li>
<label>
<span>
<input>
<span>
<a> TEXT
</a>
</span>
</input>
</span>
</label>
</li>
<li>..</li>
Предполагая, что существует n
с n различными текстами, и у меня есть собственные приказы, которым я буду следовать, я думаю, что лучший способ это сделать - посмотреть на внутреннюю вершину и сопоставить ее с массивом, в котором я установил правильный порядок.
var sorOrder = ['text2','text1','text4','text3']