2012-06-28 18 views
6

Bu kullanılarak bir div değerini almak için:nasıl div 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> 

O div değer özelliğini istediğiniz (value = "1").

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

ama nasıl herhangi bir çözüm önermek lütfen javascript kullanarak değeri 1 olsun "Tanımsız" gösteriyor ,.:

böyle çalışıyorum

+0

"Bir div değeri" ?? İstediğiniz şeyi yapmanın daha iyi bir yolu olabilir .. – SuperSaiyan

cevap

11

DIV ler bir valueözelliği yok. Ben yorumların söylediği gibi

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

Korkarım ki bu bazı IE sürümleriyle sorunlu olabilir mi? http://stackoverflow.com/questions/531508/getattribute-cannot-return-class-in-ie7 – DhruvPathak

+0

@DhruvPathak IE'nin garip sürümlerinin bununla mücadele edip edemeyeceğini tartışmayacağım - IE'nin garip versiyonları herşeyle mücadele etmek. Ancak, gönderdiğiniz link, konuyla ilgili değildir. Bu bağlantı, IE sınıfının "className" olarak _proper_ referansını ifade eder. Beni reddeden kişi sensin, nedenini anlamıyorum. – JAAulde

+0

Üzgünüm yar vermek istiyorum + ama ne yazık ki ben aşağı ok tıkladım değiştirmek istiyorum ama hareket etmiyor – srinu

0

Değer

bu

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

Öneri verdiğiniz için teşekkür ederiz. – srinu

3

kısa 'değer' div bir geçerli bir özellik değil koymak için deneyin DIV geçerli bir özellik değil. Bu yüzden tanımsız olarak dönmek kesinlikle doğrudur.

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

Bu en çalışmalıdır: Yapabileceğin Ne

'veriye *'

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

Ve script olurdu HTML5 biri özellikleri kullanılarak hattında bir şeydi modern tarayıcılar Sadece geçerli kılmak için doctype'inizi <!DOCTYPE html> olarak eklemeyi unutmayın.

1

Bunu deneyebilirsiniz:

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

:

Teknik olarak DTD'lerin göre onlar ya bir valueniteliği olmamalıdır, ancak genellikle bu durumda .getAttribute() kullanmak isteyeceksiniz <div> öğesinde value özniteliği yoktur.

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

Daha doğrusu niteliklerini data-* HTML5 kullanarak öneririz: (çok) kötü olsa da, o kadar erişilebilir. Böyle bir şey: Eğer kullanarak erişebilir

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

bu durumda: Bütün

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

ait

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

İlk değil geçerli HTML olduğunu.yerine aşağıdaki özel veri niteliklerini haberlerini okuyun veya kullanın: "Veri değeri" yana

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

bir niteliktir, onun değerini almak için getAttribute işlevini kullanmak zorunda.

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

olduğunu göstermek istiyorum Eminim ki farkındasın, ama OP'lerin iyiliği için temizleyeceğim Bu "veri değeri" sadece bir HTML 5 DOCTYPE ile geçerlidir. Bu olmadan, "veri değeri" ve "değer" eşit olarak geçersizdir. Ayrıca, eğer kişi özelleştirilmiş bir DOCTYPE kullanıyorsa, 'value' _could_ geçerli bir özellik olabilir. Son yorum bir streç, itiraf ediyorum. :) – JAAulde

İlgili konular