2010-12-23 8 views
0

hier ist mein HTML und jquery und wenn die Seite lädt, ich soll eine Alarmbox mit dem Wert 10 bekommen, aber stattdessen bekomme ich nichts. Was mache ich falsch?wie man Wert von div

<html> 
<head> 
    <script src="js/jquery-1.4.4.min.js" type="text/javascript"></script> 

    <script type="text/javascript"> 

    val = $("#t").text(); 
    alert(val); 

    </script> 
</head> 
<body> 

    <div id="t">10</div> 
</body> 
</html> 
+0

egal ich es herausgefunden. – iisarmenhb

Antwort

1

Die HTML

<div id="t">10</div> 

nach dem Skript ist, wird das Skript vor nichts zu finden.

Sie haben den Auftrag verwenden

<div /> 
<script /> 

Oder jQuery.ready

Example on jsBin

0

Sie versuchen, etwas von einem Element zu ändern abzurufen, die noch nicht existiert. Die einfachste Lösung ist, Ihren JS-Code an den unteren Rand Ihres HTML zu verschieben (direkt vor dem </body>).

Eine andere Lösung ist es, "wrap" Ihr Code in einem jQuery ready Ereignis:

$(document).ready (function() { 
    val = $("#t").text(); 
    alert(val); 
}); 

Die ready-Ereignis ausgelöst wird, wenn das DOM ist bereit, mit manipuliert zu werden.

3

Versuchen und immer Ihren Code wickeln zu laufen, wenn die document die Elemente bevölkert hat, wie folgt aus:

<script type="text/javascript"> 
$(function() { 
    val = $("#t").text(); 
    alert(val); 
}); 
</script> 

... sonst, wenn $("#t") läuft id="t" Elemente auszuwählen es laufen wird ... aber die Elemente sind noch nicht im DOM zu finden.

+0

ja, ich habe bemerkt, dass danke – iisarmenhb

+0

Wenn die Seite für eine Weile hängen bleibt, wird das Skript erst später ausgeführt. Beispiel: Wenn die SO-Seite nicht vollständig geladen wird und Sie auf den Umschlag klicken, wird sie nicht geöffnet, stattdessen werden Sie zum Stapelaustausch weitergeleitet. Fügen Sie ein Skript-Tag hinzu, nachdem das Element es sofort ausgeführt hat. – BrunoLM

0

versuchen, diese

<div id="t">10</div> 

val = $("#t").html(); 
    alert(val); 
0

Das Skript ausgeführt wird, bevor die div vom Browser verarbeitet wurde.

Das div ist noch nicht im DOM.

Sie könnten entweder den Scrip-Tag unter dem div bewegen oder Sie Code in ein auf Ready-Funktion wickeln:

<script type="text/javascript"> 
    $(function() { 
     val = $("#t").text(); 
     alert(val); 
    }); 
</script>