2009-11-11 11 views

Odpowiedz

10

aby upewnić się uzyskać http://foo.com, http://bar.foo.com/about, a nie http://bazfoo.com, spróbuj:

$("a[href*='/foo.com'], a[href*='.foo.com']").addClass('your_class'); 

Oto silniejszy roztwór o wyrażeniach regularnych, jest to prawdopodobnie wolniej, pamiętajcie, ale sprawdza domena jest na początku :

$("a").filter(
    function(){ 
     return $(this).attr('href') 
         .match(/^https?:\/\/([^/]*\.)?foo\.com(\/.*|$)/i); 
    }) 
    .addClass('your_class'); 

Oto niektóre przypadki testowe: http://jsbin.com/oruhu
(można go edytować tutaj: http://jsbin.com/oruhu/edit).

1
$("a[href='foo.com']").addClass('your_class') 
0

Trywialnie: $("a[href='http://foo.com']").addClass('foo'); Ale to zakłada dokładne dopasowanie na URL.

3

Jeśli masz linki do różnych stron w domenie foo jak:

<a href="http://foo.com/eggs.html"> 
<a href="http://foo.com/bacon.html"> 

następnie można użyć selektora takiego:

$("a[href^=http://foo.com/]").addClass("newClass") 

który znajdzie wszystkie linki, które zaczynają się od "http://foo.com/ " lub

$("a[href*=/foo.com/]").addClass("newClass") 

który znajdzie wszystkie linki, które zawierają "/foo.com/"

+1

W twoim kodzie brakuje kropek '.' przed twoją addClass. – Mottie

+0

Naprawiono. Dziękuję Ci. –

Powiązane problemy