2016-05-29 24 views
2

Ich habe eine Menge Probleme versucht, um Wert in Javascript zu erhalten und es an Alarm übergeben. Hier ist der Code, den ich benutze den Wert zu übergeben ....Javascript - wie Wert in Javascript-Code übergeben

 <img onclick="handpost()" id="colorface" name="red" src="http://www.asl-ela.org/image/redface.png" alt="Red face" /></a> 

Dann benutze ich Funktion die Daten aus img-Tag zu bekommen ....

<script type="text/javascript"> 
    function handpost() { 
     var color = document.getElementById('colorface').name; 
     alert(color); 
    } 
</script> 

ich Warnmeldung wird immer sagen, nicht definiert. Was bedeutet das?!?!?!

+0

'name' ist kein' 'property – charlietfl

+1

Da' name' ist eine Eigenschaft von img element. Sie sollten 'getAttribute' verwenden, um seinen Wert zu erhalten, versuchen Sie dies 'document.getElementById (' colorface '). GetAttribute (' name ')' – andorx

+0

Da 'name' keine Standardeigenschaft für' img' Attribute ist, sollten Sie nicht benutze es. Stattdessen ist es besser, "Datenname" als den gesamten Datenbereich zu verwenden, der für benutzerdefinierte Werte reserviert wurde. https://developer.mozilla.org/en-US/docs/Web/Guide/HTML/Using_data_attributes .. diese Werte können auch über die 'data' Methode von jQuery oder 'getAttribute ('data-name') ' –

Antwort

9

Es bedeutet genau das, was es liest: document.getElementById('colorface').name ist undefiniert. document.getElementById('colorface') kann existieren, aber es hat keine Eigenschaft name. Versuchen Sie document.getElementById('colorface').getAttribute('name').
name ist kein Standardattribut von img, aber wenn Sie es hinzufügen, können Sie darauf zugreifen. enter image description here

+0

https : //jsfiddle.net/rayon_1990/5m2Ldc02/ – Rayon

+0

Hallo Alex, ich habe es versucht, aber es sagt null. Ich wundere mich warum? –

+0

Ich habe 'name' in' .getAttribute ('name') 'geändert und es funktioniert. –

3

Verwenden Sie die folgenden statt:

var color = document.getElementById('colorface').getAttribute('name'); 
+0

https://jsfiddle.net/rayon_1990/5m2Ldc02/ – Rayon

0

nicht sicher, wie Sie es bekommen könnte als undefined

Element.name, name bekommt oder setzt den Namen Eigenschaft eines DOM-Objekt ; es gilt nur für die folgenden Elemente: <a>, <applet>, <button>, <form>, <frame>, , <img>, <input>, <map>, <meta>, <object>, <param>, <select> und <textarea> (From MDN)

function handpost() { 
 
    var color = document.getElementById('colorface').name; 
 
    alert(color); 
 
}
<img onclick="handpost()" id="colorface" name="red" src="http://www.asl-ela.org/image/redface.png" alt="Red face" />

Verwandte Themen