У меня есть одна проблема с этим кодом. он выбирает первые три ключевых слова. что, если я хочу выбрать ключевое слово в случайном числе? в настоящее время он имеет 7 ключевых слов и выбирает первые три. что, если я хочу выбрать ключевое слово 3,6,7. как я могу сделать здесь случайную функцию?как выбрать случайное ключевое слово?
(function($) {
$.fn.replacetext = function (target, replacement, max) {
var limit = max || -1;
var $textNodes = this
.find("*")
.andSelf()
.contents()
.filter(function() {
return this.nodeType === 3 && !$(this).parent("a").length;
});
$textNodes.each(function (index, element) {
var $element = $(element);
var words = $element.text().split(/\b/);
var matches = 0;
var text = words.map(function (word, index) {
if (matches >= limit) {
return word;
}
if (word.match(target)) {
++matches;
return word.replace(target, replacement);
}
return word;
});
$element.replaceWith(text.join(''));
});
};
})(jQuery);
$("p").replacetext(/\bdress\b/gi, "<a href='http://www.google.com'>$&</a>", 3);
Третий параметр 'replacetext' является то, что вы ищете. –
ваш '$ textNodes.each' выполняет итерацию по массиву в последовательности, начиная с первого элемента. Вместо этого вы захотите создать функцию «rand», а не – vol7ron
@GabrielGarcia no, я думаю, что это счет того, сколько раз делать замену, а не порядок замены. – vol7ron