2009-12-01 87 views
31

我有一個包含以下div元素的頁面:獲得一個div價值的JQuery

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

我將如何檢索值(「一些價值」)或者通過JQuery的或通過標準JS?我試過了:

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

但調試器控制檯顯示「mb is null」。只是想知道如何檢索這個值。

---- ---- UPDATE 當我嘗試了建議,我得到:$不是一個函數

這是我想讀的價值,當我點擊一個jQuery的事件處理程序的一部分一個按鈕。該處理函數工作,但它不能解釋它似乎jQuery的值:

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

回覆:「$不是一個函數「 - 你確定你已經包含了jQuery .js文件嗎? – 2009-12-01 17:35:20

+2

@Chris:我喜歡你用過的方式'Re:'; – 2009-12-01 17:36:35

+1

你在哪裏設置事件處理程序?確保它在頁面主體中的'$(document).ready()'或者'myDiv'之後(通常是把腳本放在最後的好主意)。 – 2009-12-01 17:40:03

回答

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

上面的代碼會顯示innerHTML的,也就是說,如果你已經使用裏面的div HTML標籤那麼它也會顯示出來。可能這不是你所期望的。因此,另一種解決方案是使用:innerText屬性/屬性的textContent [感謝名單,以bobince,看到他的評論]

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

在調試器中繼續收到消息「myDivObj」爲NULL。我想知道是否這個div的值是動態的並且由javaScript填充是這個問題的原因。它是一個不斷增加的計數器。 – GregH 2009-12-01 20:01:47

+1

這是需要的「innerHTML」。得到...很好。 – GregH 2009-12-01 20:07:43

+3

沒有'text'這樣的屬性,有'textContent'(DOM Level 3 Core標準)和'innerText'(僅限IE)。 'text()'是調用其中之一的jQuery方法。 – bobince 2009-12-03 03:11:42

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

雖然你會更好做這樣的事情:

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>

請確保你鏈接到你的jQuery文件:)

+1

+1 - 以及如果'myDiv'包含還包含文本節點的其他元素? OP如何才能獲得「myDiv」的文本呢? – 2009-12-01 17:28:30

+3

+1用於實際回答使用jQuery獲取值的問題,而不僅僅是純JavaScript! – Fenton 2010-04-07 12:11:53

11

如果你的div是這樣的:

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

,你可以使用jQuery檢索它是這樣的:

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

你可以使用

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

看起來有可能是使用$衝突。請記住,變量'mb'不能在事件處理程序之外訪問。另外,text()函數返回一個字符串,不需要獲取mb.value。

+0

對不起,但我對這個還是很新的......上面提出的解決方案的問題在於調試器現在給出了我錯誤的行:var mb = jQuery('#myDiv')。text() 說「JQuery」不被識別...它就像JQuery庫不能從函數內部訪問。 – GregH 2009-12-01 19:53:08

+0

應該說調試器中的消息是「JQuery沒有定義」 – GregH 2009-12-01 19:55:29

1

你也可以使用innerHTML來獲取標籤內的值....

6

您的DIV是這樣的:

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

使用jQuery:

<script type="text/javascript"> 
    $(function(){ 
     var text = $('#someId').html(); 
     //or 
     var text = $('#someId').text(); 
     }; 
    </script>