#javascript #jquery #html #regex #href
#javascript #jquery #HTML #регулярное выражение #href
Вопрос:
Я хочу изменить часть многих ссылок на веб-странице. Я хочу изменить любую ссылку с «oldTag» на «newTag».
Пример. www.google.com/WillBeDifferent/oldTag для www.google.com/WillBeDifferent/newTag
В принципе, любую ссылку, где отображается oldTag, я хочу заменить на newTag. Я новичок в этом, но я исследовал в течение нескольких дней, и, похоже, ничего из того, что я могу придумать, не работает.
Контекст заключается в том, что у меня есть менеджер тегов Google, который проверяет, присутствует ли файл cookie, и если он есть, то он запускает тег для изменения всех ссылок на newTag.
Не уверен, должен ли я или могу использовать jQuery или Regex…
Вот с чем я играл, просматривая Интернет.
var anchors = document.querySelectorAll('a[href*="oldTerm"]');
Array.prototype.forEach.call(anchors, function (element, index) {
element.href ="newTerm"; });
Он заменил все ссылки на старый термин, но заменил их на http://www.google.com/newTerm.
$("a[href^='oldTerm']")
.each(function() {
this.href = this.href.replace(/oldTerm/g,
"newTerm");
});
Не удалось заставить это работать, но нашел это где-то еще здесь.
Не уверен, где искать сейчас … любая помощь была бы отличной.
Ответ №1:
вы очень близки, но вам нужно использовать * вместо ^
$("a[href*='oldTerm']")
.each(function() {
this.href = this.href.replace(/oldTerm/g, "newTerm");
});
Комментарии:
1. Спасибо, это сработало. Единственное, что мне нужно было сделать, это изменить $ на jQuery, поскольку я получал ошибку $ is not a function. Возможно, это как-то связано с тем фактом, что я загружал скрипт из диспетчера тегов Google.