Как я могу получить каждый тег "a", атрибут "href" которого содержит слово "youtube"? - PullRequest
6 голосов
/ 10 июля 2011

Я хочу перехватить каждый тег a, атрибут которого href содержит слово youtube.Мне нужно использовать JQuery.

Ответы [ 5 ]

15 голосов
/ 10 июля 2011
$('a[href*="youtube"]')

Дополнительные селекторы см. В разделе Селекторы API jQuery.

9 голосов
/ 10 июля 2011
6 голосов
/ 10 июля 2011

Вы всегда можете использовать «фильтр»:

var allYoutubes = $('a').filter(function() { return /youtube/.test(this.href); });

Вы могли бы использовать более интересный селектор, но это просто, понятно и, возможно, быстрее, поскольку библиотеке не нужно выполнять работу, чтобы выяснить, что означает ваш селектор. В основном это дело вкуса.

4 голосов
/ 10 июля 2011
2 голосов
/ 10 июля 2011

Эти другие ответы великолепны; но в случае, если вас это интересует, сделать чистую альтернативу JS (без jQuery) не так сложно

function getYouTubeLinks() {

    var links = document.getElementsByTagName("a");
    var ytlinks = [];
       for(var i=0,l=links.length;i<l;i++){
           if(links[i].href.replace("http://","").indexOf("youtube.com") === 0) {
            ytlinks.push(links[i]);  
           } 
        } 
   return ytlinks;
}

var youtube = getYouTubeLinks();
for(var i=0,l=youtube.length;i<l;i++){
    youtube[i].style.color = "pink";   
}

было бы неплохо убрать "www". а также "https://".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...