2012-06-28 29 views
6

này được div của tôi:Làm thế nào để có được giá trị của một div bằng 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> 

Tôi muốn các thuộc tính giá trị của div đó (value = "1").

tôi đang cố gắng như thế này:

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

nhưng nó được hiển thị "Không xác định" làm thế nào để có được giá trị 1 sử dụng javascript xin đề nghị bất kỳ giải pháp ,.

+0

"Giá trị của div" ?? Có thể có một cách tốt hơn để làm những gì bạn muốn .. – SuperSaiyan

Trả lời

11

DIV s không có một valuetài sản.

Về mặt kỹ thuật, theo các DTD, họ không nên có một valuethuộc tính một trong hai, nhưng nói chung, bạn sẽ muốn sử dụng .getAttribute() trong trường hợp này:

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

Tôi sợ điều này có thể gây phiền hà với một số phiên bản của IE? http://stackoverflow.com/questions/531508/getattribute-cannot-return-class-in-ie7 – DhruvPathak

+0

@DhruvPathak Tôi sẽ không tranh luận về việc liệu các phiên bản lẻ của IE có thể gặp khó khăn với phiên bản IE kỳ quặc này dường như đấu tranh với mọi thứ. Tuy nhiên, liên kết bạn đã đăng không liên quan đến chủ đề này. Liên kết đó đề cập đến tham chiếu _proper_ của IE của attr 'class' là' className'. Nếu bạn là một trong những người downvoted tôi, tôi thực sự không hiểu tại sao. – JAAulde

+0

Xin lỗi vì tôi chỉ muốn cung cấp cho + nhưng tiếc là tôi đã nhấp vào mũi tên xuống Tôi muốn thay đổi nhưng nó không di chuyển – srinu

0

Giá trị không phải là một thuộc tính hợp lệ của Bảo hiểm tiền

thử này

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

Cảm ơn bạn đã đưa ra đề xuất. – srinu

3

Nói một cách 'giá trị' ngắn không phải là một thuộc tính hợp lệ của div. Vì vậy, nó hoàn toàn chính xác để trở về không xác định.

Những gì bạn có thể làm là một cái gì đó trong dòng bằng một trong những thuộc tính HTML5 'đĩa dữ liệu *'

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

Và kịch bản sẽ là:

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

này nên làm việc trong hầu hết các trình duyệt hiện đại Chỉ cần nhớ đặt loại tài liệu của bạn là <!DOCTYPE html> để nhận tài liệu hợp lệ

1

Bạn có thể thử cách này:

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

Như tôi đã nói trong các ý kiến, phần tử <div> không có thuộc tính value. Mặc dù (rất) tệ, nó có thể được truy cập dưới dạng:

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

Tôi khuyên bạn nên sử dụng thuộc tính HTML5 data-*. Một cái gì đó như thế này:

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

trong trường hợp này bạn có thể truy cập nó bằng cách sử:

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

Trước hết

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

đó là không hợp lệ HTML.Đọc trên các thuộc tính dữ liệu tùy chỉnh hoặc sử dụng sau đây thay vì:

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

Kể từ khi "dữ liệu có giá trị" là một thuộc tính, bạn phải sử dụng các getAttribute chức năng để lấy giá trị của nó.

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

Tôi chắc chắn rằng bạn biết rõ, nhưng vì lợi ích của OP, tôi sẽ làm rõ 'data-value' chỉ hợp lệ với HTML 5 DOCTYPE. Không có nó, 'data-value' và' value' đều không hợp lệ. Hơn nữa, nếu một người đang chạy DOCTYPE tùy chỉnh, 'giá trị' _could_ là một thuộc tính hợp lệ. Bình luận thứ hai là một đoạn, tôi thừa nhận. :) – JAAulde

Các vấn đề liên quan