2012-02-01 5 views
0

Я хочу изменить href тега, используя jquery.Изменение href <a> Не работает

Это HTML код:

<a href="exampleurl" id="a_theme" onClick="return activate_theme();">Click</a> 

Это код JQuery:

function activate_theme(){ 
    $("#a_theme")).attr("href", "new url"); 
} 

Он отображает сообщение об ошибке:

activate_theme is not defined 
+2

У вас есть синтаксическая ошибка в вашей функции (в вашем селекторе jQuery есть дополнительный закрытый палец). – jdigital

ответ

0

первым способом:

$(function(){ 
$("#a_theme").click(
    function(){ 
     $("#a_theme").attr("href", "new url"); 
    } 
); 
}); 

<a href="#" id="a_theme">Click</a> 

второй путь:

function activate_theme(){ 
    $("#a_theme").attr("href", "new url"); 
} 


<a href="#" id="a_theme" onClick="activate_theme()">Click</a> 
0

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

Просто замените код с этим:

<a href="exampleurl" id="a_theme">Click</a> 

и с JavaScript:

$(function(){ 
    $("#a_theme").attr("href", "new url"); 
}); 

, который будет выполняться, как только DOM готов, и заменит href для указанной ссылке.

Смотрите работает демо здесь: http://jsfiddle.net/tadeck/mHtHc/

0
try with this also: 

$('#a_theme').click(function(){ 
$(this).attr('href', 'new_url'); 
}); 

, но если у вас есть более чем один идентификатор с тем же именем, то :

$('#a_theme').each(function(i, e){ 
    $(this).click(function(){ 
    //same url on all '#a_theme' on click 
    $(this).attr('href', 'new_url'); 
    }); 
}); 
Смежные вопросы