2009-12-01 91 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>