2010-10-15 4 views
1


Quel est le problème avec mon code? Pourquoi .atrr() est-il vide?
Mercijquery et attr, undefind

$(document).ready(function(){ 
    $('#push').click(function(){ 
     alert($('#push2').attr('href').val); 
    }); 
}); 

HTML:

<div id="push">PUSH</div> 
<a id="push2" href="http://www.google.com">PUSH Google</a> 

Répondre

8

.attr()déjà retourne une chaîne, donc il suffit d'utiliser directement (sans .val):

$(document).ready(function(){ 
    $('#push').click(function(){ 
     alert($('#push2').attr('href')); 
    }); 
}); 

You can test it here. La raison pour laquelle vous voyez undefined est actuellement parce que la propriété .val d'une chaîne objet estundefined :)

2

Je pense que vous n'avez pas besoin .val après $('#push2').attr('href'). attr La fonction renvoie déjà la chaîne.

+0

rapide, réponses fiver en une minute :) –

0

Je ne suis pas sûr que vous ayez besoin du .val après l'attr. fonction? Essayez cela et voyez ce que vous obtenez.

0

Essayez:

alert($('#push2').attr('href').text()); 
0

Votre utilisant le même identifiant pour la div et l'ancre. Les ID doivent être uniques. Jquery tire le premier élément qui est le div et oui ce div n'a pas de href Utilisez simplement $ ('# push2'). Attr ('href');

1
$('#push2').attr('href')