jQuery find (), включая текущий узел - PullRequest
0 голосов
/ 01 октября 2018

Я хотел бы выбрать элементы с помощью метода jQuery find().Этот метод ищет дочерние узлы, но он не включает сам узел, который я хочу считать также.В ответ на этот вопрос они предложили сделать это следующим образом:

object.find('selector').addBack('selector')

Мне показалось, что это хороший обходной путь, но, к сожалению, это решение не работает со всеми селекторами.Предположим, у меня есть несколько узлов

<div class="someClass">
  <div></div>
  <div class="someClass">
    <span></span>
  </div>
</div>

и я хочу использовать childselector '.someClass > *' (или аналогичный, который влияет на текущий узел и его потомков).Я ожидаю получить 2 div элементов и span, но я, очевидно, получаю только элемент span.

Кто-нибудь знает обходной путь или другой метод?

1 Ответ

0 голосов
/ 01 октября 2018

Предполагая, что вы не беспокоитесь о выборе элементов одного уровня, вы можете начать запрос с родительского узла, с которого вы начали.Это обеспечит включение рассматриваемого узла в запрос.

const selector = '.someClass > *';
let $node = $('body > .someClass');
let $matches = $node.parent().find(selector);
console.log($matches)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="someClass">
  <div></div>
  <div class="someClass">
    <span></span>
  </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...