Выбор элемента по содержимому с помощью JQuery - PullRequest
3 голосов
/ 22 февраля 2011

В настоящее время я создаю приложение, которое требует идентификации элемента по его содержимому.Обычно я бы использовал идентификатор элемента для его идентификации, но в этом случае это невозможно, поскольку контент генерируется пользователем.

У меня есть скрипт PHP, который выводит некоторый контент, часть которого вводится пользователем,Например:

<!-- elementid1 -->
This is user generated text. Lorem ipsum...

Мне нужно иметь возможность идентифицировать этот элемент и инициировать событие по щелчку.Как только щелчок произойдет, я смогу легко разобрать идентификатор (elementid1) из содержимого.

Однако эти элементы не всегда являются просто DIV.Иногда это от H1 до H6 и т. Д. Как бы я обнаружил эти события

ИЛИ

В качестве альтернативы, я мог бы перебрать все элементы (часть, которую я не знаю, как сделать)установка пользовательского атрибута с идентификатором, а затем создание событий JQuery для элементов с атрибутом, равным чему-либо.Если у кого-то есть понимание того, как перебирать каждый элемент DOM (желательно только дочерние элементы, поскольку у родителей также будет содержимое дочерних элементов ...), то это также сработает.

AПримечание:

Обычно я бы использовал селектор contains (), но, поскольку этот идентификатор является комментарием, а не текстом, он, похоже, не работает.

Ответы [ 2 ]

8 голосов
/ 22 февраля 2011

Попробуйте это ...

$('*').filter(function() {
   return $(this).html().match('<!-- elementid1 -->');
});

jsFiddle .

2 голосов
/ 22 февраля 2011

Вы можете создать пользовательский селектор, который будет искать потомков с помощью nodeType = COMMENT_NODE (8) и определенного содержимого ... Но это долго ...

jsFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...