Итак, ответ Нарниана работает очень хорошо. Однако, используя его в дикой природе, я столкнулся с некоторыми проблемами, когда вещи, которые я ожидал найти, не были найдены. Это было потому, что иногда текст элемента окружает случайное пустое пространство. Я считаю, что если вы ищете «Hello World», вы все равно захотите, чтобы он соответствовал «Hello World» или даже «Hello World \ n». Таким образом, я просто добавил к функции метод trim (), который удаляет окружающие пробелы, и он стал работать лучше. Кроме того, я изменил имена переменных, чтобы мне было немного понятнее.
Конкретно ...
$.expr[':'].textEquals = function(el, i, m) {
var searchText = m[3];
var match = $(el).text().trim().match("^" + searchText + "$")
return match && match.length > 0;
}
И второе примечание ... обрезка удаляет только пробелы до и после искомого текста. Он не удаляет пробелы в середине слов. Я считаю, что это желательное поведение, но вы можете изменить это, если хотите.