У меня есть огромный список имен (более 10 000), и мне нужно искать экземпляры любого из них (не чувствительные к регистру). Мне нужны эти слова как элементы jQuery, поэтому я могу добавить к ним функциональность. Есть ли эффективный способ сделать это с помощью jQuery?
Дополнительная информация по запросу: в настоящее время у меня есть имена в виде массива строк в моем javascript. Код должен искать имена во всем тексте на странице. Это имена существ, к которым я хочу добавить всплывающую подсказку с помощью Типси.
Если это имеет какое-то значение, это для расширения хром. Вопрос в основном заключается в том, как эффективно найти много разных строк на странице. Я уже нашел множество способов сделать это, если вы ищете только одно слово, хотя итерация над списком слов и выполнение его по отдельности для каждого кажется плохим способом сделать это.
Благодарю!
Я не знаю о производительности этого кода для массива из 10 000 значений. Но я нашел здесь этот код: Найти текстовую строку в jQuery и сделать ее полужирным
И я сделал незначительные изменения здесь: http://jsfiddle.net/rsta/fqtaV/2/
В основном, я повторно использую код elclanrs, но добавил слово класса к тегу и переместил массив из вызова функции, поэтому будет легче читать ваш уже существующий массив.
$.fn.wrapInTag = function (opts) {
var tag = opts.tag || 'strong',
words = opts.words || [],
regex = RegExp(words.join('|'), 'gi') // case insensitive
,
replacement = '<' + tag + ' class="word">$&</' + tag + '>';
return this.html(function () {
return $(this).text().replace(regex, replacement);
});
};
// list
var name_array = new Array('john', 'ringo', 'paul', 'george');
// Usage
$('body').wrapInTag({
tag: 'span',
words: name_array
});