Артём Мáлков

Как осуществить проверку на точное совпадение на jQuery?

9 ноя0 комм

Не так давно я реализовал весьма интересное дополнение, о котором вы можете почитать в этой статье. Так вот – там мне было необходимо осуществить проверку на точное совпадение моей фразы с имеющимися данными.

Сначала я решил реализовать это следующим образом:

<ul>
	<li>Один</li>
	<li>Два</li>
	<li>Три</li>
	<li>Четыре</li>
</ul>

<script>

	$("ul li:contains('Два')").css("color", "blue");

</script>

Вроде бы все хорошо, но это до тех пор, пока вы не имеете две похожие фразы, например:

<ul>
	<li>Один</li>
	<li>Два</li>
	<li>Три</li>
	<li>Четыре</li>
	<li>Двадцать</li>
</ul>

<script>

	$("ul li:contains('Два')").css("color", "blue");

</script>

В таком случае определение совпадения происходит не совсем корректно, ведь если лишь часть предложенной фразы совпадает, то нужное нам действие выполняется.

В моем случае мне было необходимо произвести проверку на точное соответствие. Поскольку в jQuery такого селектора не нашлось, было решено добавить свой.

Реализация:

<script>

	$.expr[":"].exact = $.expr.createPseudo(function(arg) {

		return function(element) {

			return $(element).text() === arg.trim();

		};

	});

</script>

Ну и, соответственно, ее использование:

<ul>
	<li>Один</li>
	<li>Два</li>
	<li>Три</li>
	<li>Четыре</li>
	<li>Двадцать</li>
</ul>

<script>

	$.expr[":"].exact = $.expr.createPseudo(function(arg) {

		return function(element) {

			return $(element).text() === arg.trim();

		};

	});
	
	$("ul li:exact('Два')").css("color", "blue");

</script>

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

Рекомендуем к просмотру
Проверяем наличие значения в многомерном массиве на PHP
Модули и скрипты
Как проверить наличие слова, фразы или текста в строке на PHP/JavaScript
Статьи и советы
Кроссбраузерный поиск в select через input на jQuery
Модули и скрипты
0
комментариев
Форма комментирования этого поста скрыта. Авторизуйтесь, чтобы расширить привилегии гостевого посещения и получить необходимую помощь от сообщества Pandoge.
Подняться наверх
«Pandoge» - помощник вебмастера