2016-11-14 1 views
0

ich eine Funktion ausgeführt werden soll, wenn var roll_time = $('#banner')[0].childNodes[0].textContent;== "Rolling in 25.00..." i versucht haben, so mit diesem Code zu tun, aber ich nicht eine Ausgabe erhalten. Der Text in der <span> wird alle 10 Millisekunden geändert.So verwenden if-Anweisung mit einer Spannweite Text verändert

setInterval(test, 10) 
 

 
function test(roll_time) { 
 

 
var roll_time = $('#banner')[0].childNodes[0].textContent; 
 

 
if (roll_time == "Rolling in 25.20...") { 
 
console.log(success) } 
 
}
<span id="banner">Rolling in 25.20...</span>

+0

ähm .... Sie anrufen 'test' ohne Argumente, ist so' roll_time' immer 'undefined' innerhalb von' test'. –

+0

Was meinst du? – McMuffin

+0

'function test (roll_time) {...}' da drin bezieht sich 'roll_time' auf das, was als erstes Argument zu' test' übergeben wird. setInterval ruft 'test' nicht mit einem Argument auf, daher ist dieses Argument nicht definiert. –

Antwort

2

Das ist, weil Sie die roll_time zuzugreifen versuchen, die den Wert während der Belastung zu füllen.

$ ('# banner') [0] .childNodes [0] .textContent ist eine Zeichenkette, keine Referenz. Wenn Sie zu einem späteren Zeitpunkt auf die Zeichenkette zugreifen müssen, müssen Sie explizit die Wert aus dem DOM.

setInterval(test, 10) 
 

 
function test() { 
 
    var roll_time = $('#banner')[0].childNodes[0].textContent; 
 
    if (roll_time == "Rolling in 25.20...") { 
 
    console.log("success"); 
 
    } 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<span id="banner">Rolling in 25.20...</span>

+1

Der Code ist korrekt, aber der erste Satz ist nicht vollständig korrekt. Er hat auf das Argument roll_type zugegriffen, das immer undefiniert war. –

+0

Ja, Sie haben Recht. – Sreekanth

+0

Kann ich eine Funktion anstelle von console.log verwenden? – McMuffin

Verwandte Themen