2009-12-01 40 views
31

Tôi có một trang chứa phần tử div sau:Nhận một giá trị gia tăng Div trong JQuery

<div id="myDiv" class="myDivClass" style="">Some Value</div> 

Làm thế nào tôi sẽ lấy giá trị ("Một số giá trị gia tăng") hoặc thông qua JQuery hoặc thông qua tiêu chuẩn JS? Tôi đã thử:

var mb = document.getElementById("myDiv"); 

Nhưng bảng điều khiển trình gỡ lỗi hiển thị "mb là rỗng". Chỉ cần tự hỏi làm thế nào để lấy giá trị này.

---- CẬP NHẬT ---- Khi tôi cố gắng đề nghị tôi nhận được: $ không phải là một chức năng

Đây là một phần của một xử lý sự kiện JQuery nơi tôi đang cố gắng để đọc giá trị khi tôi nhấp một nut bâm. Chức năng xử lý đang làm việc nhưng nó không thể giải thích giá trị jQuery có vẻ như:

jQuery('#gregsButton').click(function() { 
    var mb = $('#myDiv').text(); 
    alert("Value of div is: " + mb.value); 
}); 
+4

Re: "$ không phải là một hàm "- Bạn có chắc là bạn đã đưa vào tệp jQuery .js không? –

+2

@Chris: tôi thích cách bạn sử dụng 'Re:';) –

+1

Bạn đặt trình xử lý sự kiện đó ở đâu? Hãy chắc chắn rằng nó trong '$ (document) .ready()' hoặc sau 'myDiv' trong phần thân của trang (thường là một ý tưởng hay để đặt các script ở cuối). –

Trả lời

21
myDivObj = document.getElementById("myDiv"); 
if (myDivObj) { 
    alert (myDivObj.innerHTML); 
}else{ 
    alert ("Alien Found"); 
} 

Trên mã sẽ hiển thị các innerHTML, tức là nếu bạn đã sử dụng thẻ html bên trong div sau đó nó sẽ hiển thị ngay cả những người quá. có lẽ đây không phải là những gì bạn mong đợi. Vì vậy, một giải pháp khác là sử dụng: bất động sản innerText/textContent [thanx cho bobince, xem bình luận của ông]

function showDivText(){ 
      divObj = document.getElementById("myDiv"); 
      if (divObj){ 
       if (divObj.textContent){ // FF 
        alert (divObj.textContent); 
       }else{ // IE   
        alert (divObj.innerText); //alert (divObj.innerHTML); 
       } 
      } 
     } 
+0

Tiếp tục nhận được thông báo "myDivObj" là NULL trong trình gỡ lỗi. Tôi tự hỏi nếu thực tế là giá trị của div này là năng động và dân cư bởi javaScript là nguyên nhân của vấn đề. Nó là một truy cập là liên tục tăng. – GregH

+1

Đó là "innerHTML" cần thiết. Got ... hoạt động tuyệt vời. – GregH

+3

Không có thuộc tính nào như 'văn bản', có' textContent' (tiêu chuẩn Lõi DOM 3) và 'innerText' (chỉ dành cho IE). 'text()' là phương thức jQuery gọi một trong hai phương thức đó. – bobince

54
$('#myDiv').text() 

Mặc dù bạn muốn được tốt hơn làm một cái gì đó như:

var txt = $('#myDiv p').text(); 
 
alert(txt);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div id="myDiv"><p>Some Text</p></div>

Đảm bảo bạn đang liên kết với tệp jQuery của mình quá :)

+1

+1 - và nếu 'myDiv' chứa các phần tử khác cũng chứa các nút văn bản thì sao? Làm thế nào OP sẽ chỉ nhận được văn bản của 'myDiv' sau đó? –

+3

+1 để thực sự trả lời câu hỏi về việc nhận giá trị bằng cách sử dụng jQuery, không chỉ đơn giản là JavaScript! – Fenton

11

nếu bạn div trông như thế này:

<div id="someId">Some Value</div> 

bạn có thể lấy nó với jquery như thế này:

$('#someId').text() 
2

Bạn có thể sử dụng

jQuery('#gregsButton').click(function() { 
    var mb = jQuery('#myDiv').text(); 
    alert("Value of div is: " + mb); 
}); 

Hình như có thể có một cuộc xung đột với việc sử dụng $. Hãy nhớ rằng biến 'mb' sẽ không thể truy cập được bên ngoài trình xử lý sự kiện. Ngoài ra, hàm text() trả về một chuỗi, không cần phải lấy mb.value.

+0

Xin lỗi, nhưng tôi vẫn còn rất mới mẻ ... vấn đề với giải pháp được đề xuất ở trên là trình gỡ lỗi hiện cung cấp tôi một lỗi cho dòng: var mb = jQuery ('# myDiv'). văn bản() Nói "JQuery" không được công nhận ... giống như thư viện JQuery không thể truy cập từ bên trong hàm. – GregH

+0

Nên có thông báo trong trình gỡ lỗi là "JQuery không được xác định" – GregH

1

Bạn cũng có thể sử dụng innerHTML để lấy giá trị trong thẻ ....

6

div của bạn trông như thế này:

<div id="someId">Some Value</div> 

Với jquery:

<script type="text/javascript"> 
    $(function(){ 
     var text = $('#someId').html(); 
     //or 
     var text = $('#someId').text(); 
     }; 
    </script> 
Các vấn đề liên quan