2012-04-18 2 views
0

Я несколько HTML HREF, как показано ниже:селектора Jquery множественной HREF - динамически получить HREF значения

<a id="link1" href="http://www.google.com">USA </a>  
<a id="link2" href="http://www.google.com.au">AU </a> 
<a id="link2" href="http://www.google.com.nz">NZ </a> 

Я JQuery, как показано ниже:

<script> 
    $("a").click(function() { 
     var link = $('a').attr('href'); 
     alert(link); 
     dosomethingforlink(link); 

    }); 
</script> 

В принципе, с одной функцией мыши выше Я хотел бы получить значение href для метки <a> (нажимаем) и сделать что-то другое для каждой ссылки.

Или мне нужно создать функцию (#id).click для каждого идентификатора?

Может кто-нибудь, пожалуйста, помогите мне, если это возможно с помощью JQuery?

ответ

4

Попробуйте это:

$("a").click(function() { 
    var link = $(this).attr('href'); 
    alert(link); 
    dosomethingforlink(link); 
}); 

Я изменил $('a') к $(this), как $('a') получит все якоря .. $(this) будет получить только в настоящее время нажал одну.

Here is a quick working demo .. вы увидите, что последняя строка event.preventDefault() - предотвращает действие по умолчанию (то есть после href) и позволяет выполнять вашу функцию. event.preventDefault() docs here

+0

Спасибо @ManseUK. –

+0

Привет @ManseUK, функция dosomethingforlink (link) использует объект ActiveXObject. IE показывает, что диалог «может быть небезопасным. ..». При использовании нажмите «Нет» . Можно ли ничего не делать, если используете клики «Нет». –

1
$("a").click(function (evt) { 
     evt.preventDefault(); 
     var link = $(this).attr('href'); 
     alert(link); 
     dosomethingforlink(link); 
}); 

вы должны использовать preventDefault() иначе вам не сможет выполнить дальнейший код (ваша ссылка будет нажата, и страница будет немедленно изменена)

0

Идентификаторы должны быть уникальными, поэтому не используйте один и тот же идентификатор для нескольких элементов.

Что-то вроде этого, может быть:

$("a[id^='link']").on('click', function (e){ 
    e.preventDefault(); 
    switch ($(this).attr('href')) { 
    case 'http://www.google.com' : 
     //do something 
    break; 
    case 'http://www.google.com.au' : 
     //do something 
    break; 
    default: 
     //do something else 

....etc 
    } 
}); 
Смежные вопросы