2012-06-28 8 views
6

Das ist mein div ist:Wie Wert eines div mit Javascript bekommen

<div id="demo" align="center" value="1"> 
    <h3>By Color</h3> 
    <input type="radio" name="group1" id="color1" value="#990000" onClick="changeColor()"/><label for="color1">Red</label> 
    <input type="radio" name="group1" id="color2" value="#009900" onClick="changeColor()"/><label for="color2">Green</label> 
    <input type="radio" name="group1" id="color3" value="#FFFF00" onClick="changeColor()" /><label for="color3">Yellow</label><br><br><br> 
</div> 

ich den Wert Attribut dieses div (value = "1") wollen.

ich so bin versucht:

function overlay() 
{ 
    var cookieValue = document.getElementById("demo").value;  
    alert(cookieValue); 
} 

aber es zeigt „undefiniert“, wie Wert 1 Javascript erhalten unter Verwendung vorschlagen bitte irgendeine Lösung ,.

+0

"Wert eines div" ?? Vielleicht gibt es eine bessere Art zu tun, was Sie wollen .. – SuperSaiyan

Antwort

11

DIV s haben keine valueEigenschaft.

Technisch nach dem DTDs, sollten sie entweder ein valueAttribut nicht haben, aber Sie werden in der Regel .getAttribute() in diesem Fall verwendet werden sollen:

function overlay() 
{ 
    var cookieValue = document.getElementById('demo').getAttribute('value'); 
    alert(cookieValue); 
} 
+0

Ich fürchte, das könnte mit einigen IE-Versionen problematisch sein? http://stackoverflow.com/questions/531508/getattribute-cannot-return-class-in-ie-7 – DhruvPathak

+0

@DhruvPathak Ich werde nicht darüber streiten, ob seltsame Versionen von IE damit zu kämpfen haben - seltsame Versionen von IE scheinen zu Kämpfe mit allem. Der Link, den Sie gepostet haben, steht jedoch nicht im Zusammenhang mit dem jeweiligen Thema. Dieser Link bezieht sich auf die _realous_referenzierung des 'class'attr als' className' des IE. Wenn du derjenige bist, der mich enttäuscht hat, verstehe ich wirklich nicht warum. – JAAulde

+0

Sorry yar ich möchte nur geben + aber leider habe ich auf den Pfeil nach unten geklickt Ich möchte ändern, aber es bewegt sich nicht – srinu

0

Wert ist kein gültiges Attribut von DIV

versuchen diese

var divElement = document.getElementById('demo'); 
alert(divElement .getAttribute('value')); 
+0

Vielen Dank für den Vorschlag. – srinu

3

Um es kurz zu ‚Wert‘ gesetzt ist kein gültiges Attribut von div. Es ist also absolut richtig, undefined zurückzugeben.

Was Sie tun konnte, war etwas in der Linie der mit einem der HTML5-Attribute 'Daten- *'

<div id="demo" align="center" data-value="1"> 

Und das Skript würde:

var val = document.getElementById('demo').getAttribute('data-value'); 

in den meisten Dies sollte funktionieren moderne Browser Denken Sie daran, Ihren Doctype als <!DOCTYPE html> setzen, um es gültig

1

Sie können dies versuchen:

var theValue = document.getElementById("demo").getAttribute("value"); 
3

Wie ich in den Kommentaren gesagt, Ein <div> Element hat kein value Attribut. Obwohl (sehr) schlecht, kann es als zugegriffen werden:

console.log(document.getElementById('demo').getAttribute); 

schlage ich HTML5 data-* eher Attribute. Etwas wie folgt aus:

element.getAttribute('data-myValue'); 
//Or using jQuery: 
$('#demo').data('myValue'); 
1

Vor allem

<div id="demo" align="center" value="1"></div> 

, die gültige HTML ist nicht :

<div id="demo" data-myValue="1">...</div> 

, in dem Fall, dass Sie es verwenden zugreifen.Informieren Sie sich über benutzerdefinierte Datenattribute oder verwenden Sie die folgende statt:

<div id="demo" align="center" data-value="1"></div> 

Da „Daten-Wert“ ist ein Attribut, müssen Sie die getAttribute Funktion verwenden, um seinen Wert abzurufen.

var cookieValue = document.getElementById("demo").getAttribute("data-value"); 
+0

Ich bin sicher, Sie sind sich bewusst, aber für die OPs Willen werde ich es klar machen Dieser 'Datenwert' ist nur mit einem HTML 5 DOCTYPE gültig. Ohne es sind "Datenwert" und "Wert" gleichermaßen ungültig. Wenn Sie einen benutzerdefinierten DOCTYPE ausführen, ist "value" ein gültiges Attribut. Der letzte Kommentar ist eine Strecke, ich gebe zu. :) – JAAulde

Verwandte Themen