Найти ссылку по содержимому и заменить текст. Как сделать на JS?

349
12 декабря 2016, 10:07
<a class="menu_core_main core_main_page" href="/ne/browse-pages">Pages</a>

Нужно найти ссылку по тексту "Pages" и если такая ссылка присутствует на странице, тогда поменять ее текст на Sponsorship. Интересует реализация на jQuery и JS.

Answer 1

На jQuery:

$("a:contains('Pages')").text('Sponsorship'); // Товарищ Yevgeny Skuridin

На JS (тут чуть сложнее, sizzle выиграл этот раунд, нечего сказать):

Array.prototype.forEach.call(document.querySelectorAll('a'), function(e){
  if(e.innerHTML == 'Pages')
    e.innerHTML = 'Sponsorship';
});
Answer 2

$("a:contains('Pages')").text('Sponsorship'); — найти все ссылки, в тексте которых содержится слово "Pages", и заменить текст на "Sponsorship".

Answer 3

Реализация на чистом JS (так как спрашивали "реализацию на jQuery и JS")

var links = document.getElementsByTagName('a');
for (var i = 0, _i = links.length; i < _i; i++) {
    if (links[i].innerHTML == 'Pages') {
        links[i].innerHTML = 'Sponsorship';
        break;
    }
}

Громоздко, но зато работает на любом браузере, который сможете откопать, независим и быстрее jQuery в 10 раз - пруф:

Вот сколько суеты можно создать вокруг 15-ти секундной задачи! :)

READ ALSO
jQuery: зависимость высота от контейнера

jQuery: зависимость высота от контейнера

Как сделать что если высотаcontainer больше высоты

243
Активный раздел в меню

Активный раздел в меню

Как можно на jQuery сделать, чтобы по переходу по ссылке к ней добавлялся класс active, а с предыдущей убирался? Чтобы в меню видеть, какой раздел...

228
Связка Web-камеры и Web-страницы Full Resolution

Связка Web-камеры и Web-страницы Full Resolution

Есть страница, на которой находится пользовательМне нужно получить изображение с Web-камеры с максимальным разрешением

315