Подтвердить что ты не робот

JQuery select на основе текста

Мне нужно выбрать элемент на основе его текста в jQuery.

Например:

<span>this text</span>

Я знаю, что могу использовать .contains() для выбора на основе текста, но это не эксклюзивно.

Я не хочу выбирать:

<span>this text and that text</span>

Я хочу выбрать элемент, если он является единственным текстом элемента.

Помимо использования regex, как это сделать с помощью селекторов jQuery?

Спасибо.

4b9b3361

Ответ 1

У вас есть рычаги с: содержит селектор, но это пока только доходит. Вам нужно будет дополнительно обрезать набор элементов на основе точных совпадений текста, как в:

$("span:contains(this text)")
.filter
(
  function()
  {
    return $(this).text() === "this text";
  }
)

Это приводит к тому, что исходное содержание технически не требуется, но вы можете столкнуться с преимуществами производительности, начиная с меньшего набора элементов SPAN перед фильтрацией до нужного вам набора.

РЕДАКТИРОВАТЬ. Взял предложение Кена Браунинга использовать функцию text() вместо innerHTML для сравнения строк в функции filter. Идея состоит в том, что innerHTML будет захватывать текст, который нас особенно не интересует (включая разметку).