2009-12-01 13 views
31

Ich habe eine Seite das folgende div-Element enthält:Holen Sie sich einen Div Wert in JQuery

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

Wie würde ich den Wert ("Einige Value") entweder durch JQuery oder durch Standard-JS abrufen? Ich habe versucht:

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

Aber die Debugger-Konsole zeigt "mb ist null". Ich frage mich nur, wie ich diesen Wert abrufen kann.

---- ---- UPDATE Wenn ich den Vorschlag versuche ich bekomme: $ ist keine Funktion

Dies ist Teil eines JQuery Event-Handler ist, wo ich den Wert zu lesen versuchen, wenn ich klicken ein Knopf. Die Handler-Funktion funktioniert, aber es kann die jQuery-Wert nicht interpretieren es scheint:

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

Re: „$ ist keine Funktion "- Sind Sie sicher, dass Sie die jQuery.js-Datei hinzugefügt haben? –

+2

@Chris: Ich mag die Art, wie Sie 'Re:' verwendet haben;) –

+1

Wo setzen Sie diesen Event-Handler? Stellen Sie sicher, dass es sich in '$ (document) .ready()' oder nach 'myDiv' im Hauptteil der Seite befindet (normalerweise ist es eine gute Idee, Skripte an das Ende zu setzen). –

Antwort

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

Above Code die innerHTML- zeigt, das heißt, wenn Sie HTML-Tags innerhalb div verwendet haben:

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

Sie es mit jquery wie diese abrufen konnte dann wird es auch diese zeigen. Wahrscheinlich haben Sie das nicht erwartet. So ist eine andere Lösung zu verwenden: Innertext/textcontent Eigenschaft [Danke an bobince zu finden sein Kommentar]

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

Erhalten Sie die Nachricht "MyDivObj" ist NULL im Debugger. Ich frage mich, ob die Tatsache, dass der Wert dieses divs dynamisch und von javaScript aufgefüllt ist, die Ursache des Problems ist. Es ist ein Zähler, der ständig inkrementiert wird. – GregH

+1

Es war die "innerHTML", die benötigt wurde. Got ... funktioniert super. – GregH

+3

Es gibt keine Eigenschaft wie 'text', es gibt' textContent' (DOM Level 3 Core Standard) und 'innerText' (nur IE). 'text()' ist die jQuery-Methode, die eine dieser Methoden aufruft. – bobince

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

Obwohl Sie besser dran wäre, etwas zu tun:

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>

Stellen Sie sicher, dass Sie auch mit Ihrer jQuery-Datei verknüpfen :)

+1

+1 - und was, wenn 'myDiv' andere Elemente enthält, die auch Textknoten enthalten? Wie würde das OP dann nur den Text von 'myDiv' bekommen? –

+3

+1 für die tatsächliche Beantwortung der Frage, den Wert mit jQuery, nicht nur einfaches JavaScript! – Fenton

11

, wenn Sie div wie folgt aussieht:

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

Sie nutzen könnten

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

Sieht aus wie es mit Hilfe des $ ein Konflikt sein kann. Denken Sie daran, dass die Variable 'mb' außerhalb des Event-Handlers nicht zugänglich sein wird. Außerdem gibt die Funktion text() eine Zeichenfolge zurück, ohne dass mb.value benötigt wird.

+0

Sorry, aber ich bin immer noch sehr neu dazu ... das Problem mit der vorgeschlagenen Lösung oben ist, dass der Debugger jetzt gibt mir ein Fehler für die Zeile: var mb = jQuery ('# myDiv'). text() Sagen "JQuery" wird nicht erkannt ... es ist wie die JQuery-Bibliothek nicht von innerhalb der Funktion zugegriffen werden kann. – GregH

+0

Sollte gesagt haben, die Nachricht im Debugger ist "JQuery ist nicht definiert" – GregH

1

Sie könnten auch innerHTML- verwenden Sie den Wert innerhalb des Tags zu bekommen ....

6

Ihre div sieht wie folgt aus:

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

Mit jquery:

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