2010-07-15 4 views
13

j'ai une page avec le code suivant:Javascript: obtenir le contenu en cours « onclick » de l'élément

<a id="test" href="someurl" onclick="somefunction">link</a> 

Je dois vraiment lire les données « onclick ». En tant que tel, je voudrais quelque chose à l'effet de

alert(document.getElementById('test').onClick) 

Malheureusement, il retourne undefined. Que dois-je faire pour obtenir somefunction?

Répondre

23

En supposant que l'étiquette est bien formée, l'attribut d'une étiquette peut être obtenu via Element.getAttribute.

document.getElementById('test').getAttribute('onclick') 
// -> "somefunction" 

Espérons que vous n'utilisez pas onclick dans un but peu scrupuleux comme le stockage de données.

2

Vous devriez essayer:

document.getElementById('test').onclick 
+0

a ce déjà travaillé? Je ne pense pas .. –

+0

Cela ne répond pas à la question. L'accès à la propriété 'onclick' d'un élément renverra simplement une référence à la fonction attachée au gestionnaire d'événements click, et non à" onclick data ", comme l'OP l'a demandé. S'il vous plaît envisager de supprimer car il est totalement incorrect. – royhowie

+0

Cela fonctionne réellement. – didierc

-1

Vous pouvez utiliser Javascript est désactivé sur balise d'ancrage comme:

<script type="text/javascript"> 

    function testClick(id) 
    { 
    alert(id); 
    } 

</script> 

<a href="#" id="test" onclick="testclick(this.id);">Click</a> 
+4

ce n'est pas vraiment quelque chose à faire avec la question ... J'essaie d'accéder à ce qui est déjà dans la balise d'ancrage, c'est-à-dire dans votre exemple, que pourrais-je écrire qui reviendrait "testclick (this.id)" – Mala

+2

S'il vous plaît envisager d'enlever cette réponse car elle n'a rien à voir avec la question posée. – royhowie

Questions connexes