2012-06-28 22 views
6

Questo è il mio div:Come ottenere il valore di un div con javascript

<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> 

voglio l'attributo valore di tale div (value = "1").

Sto provando in questo modo:

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

ma sta mostrando "indefinito" come ottenere il valore 1 utilizzando JavaScript Per qualsiasi proposta di soluzione ,.

+0

"Valore di un div" ?? Potrebbe esserci un modo migliore di fare quello che vuoi .. – SuperSaiyan

risposta

11

DIV s non hanno una proprietàvalue.

Tecnicamente, secondo le DTD, non dovrebbero avere un attributovaluesia, ma in generale ti consigliamo di utilizzare .getAttribute() in questo caso:

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

Ho paura che questo potrebbe essere fastidioso con qualche versione di IE? http://stackoverflow.com/questions/531508/getattribute-cannot-return-class-in-ie7 – DhruvPathak

+0

@DhruvPathak Non voglio discutere sul fatto che le versioni dispari di IE possano lottare con questo - strane versioni di IE sembrano lottare con tutto. Il link che hai pubblicato, tuttavia, non è correlato all'argomento in questione. Quel collegamento si riferisce al riferimento _proper_ di IE del 'class' attr come' className'. Se sei quello che mi ha downvoted, davvero non capisco perché. – JAAulde

+0

Scusa yar voglio solo dare + ma sfortunatamente ho cliccato su freccia giù voglio cambiare ma non si muove – srinu

0

Il valore non è un attributo valido di DIV

provare questo

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

Grazie per aver dato il suggerimento. – srinu

3

Per dirla breve 'valore' non è un attributo valido della div. Quindi è assolutamente corretto restituire undefined.

Che cosa si potrebbe fare era qualcosa nella linea di utilizzare uno dei HTML5 attributi 'dati- *'

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

e lo script sarebbe:

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

Questo dovrebbe funzionare nella maggior parte browser moderni Ricordati di mettere il tuo doctype come <!DOCTYPE html> per farlo valido

1

Puoi provare questo:

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

Come ho detto nei commenti, un elemento <div> non ha un attributo value. Anche se (molto) male, è possibile accedervi come:

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

Io suggerisco di usare HTML5 data-* attributi piuttosto. Qualcosa di simile a questo:

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

nel qual caso si potrebbe accedervi utilizzando:

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

Prima di tutto

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

che non è HTML valido.Leggi su attributi dei dati personalizzati o utilizzare il seguente invece:

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

Dal momento che "i dati a valore" è un attributo, è necessario utilizzare la funzione getAttribute per recuperare il suo valore.

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

Sono sicuro che tu lo sappia, ma per l'amor di OP lo renderò chiaro che 'valore-dati' è valido solo con un DOCTYPE HTML 5. Senza di esso, 'valore-dati' e' valore' non sono ugualmente validi. Inoltre, se si sta eseguendo un DOCTYPE personalizzato, 'value' _could_ essere un attributo valido. Quest'ultimo commento è un tratto, lo ammetto. :) – JAAulde

Problemi correlati