2016-07-11 6 views
0

Ich habe eine Phonegap-Anwendung mit einigen Standard-HTML und JQuery zum Anzeigen von Daten für den Benutzer. Beim Testen auf einer Samsung Galaxy Camera 2 tritt gelegentlich ein Fehler auf, dass eine Variable nicht definiert ist.Wie kann die HTML-Tag-ID in dieser Datei nicht definiert werden?

Dies scheint nicht möglich, da die Variable aus dem erstellt wird, was sie für undefiniert hält.

ich den Fehler auf FLD bin immer [0] .id:

nicht Methode 'indexOf' undefinierter nennen.

Voll Beispiel auf jsfiddle: https://jsfiddle.net/8lug/fu2v62fh/ Teil Beispiel javascript:

var fld = $('#thisdiv').find('[id^=fld-One]'); 

if (fld.length > 0 && fld[0].id.indexOf('#')) { 
    $('#fld-Result').text("Success"); 
} 

Wie ist es dieses indexOf möglich brechen könnte?

Bearbeiten: Kann jemand eine Bearbeitung bieten, die dieses Szenario in der IF-Anweisung schützen?

+0

Wo ist dieses Skript verpackt? Soweit ich weiß, ist die einzige Möglichkeit, dass es undefiniert sein muss, ob das Element fld-One nicht existiert (oder noch nicht **). – briosheje

+0

@briosheje Dann wäre 'fld.length> 0 'falsch und' .indexOf() 'wird überhaupt nicht aufgerufen. – Andreas

+0

@Andreas: Clever, in der Tat. Kann es also wirklich mit der Browser-Version/dem Browser selbst zusammenhängen? Ich glaube nicht, dass es wirklich irgendeinen anderen möglichen Grund gibt. – briosheje

Antwort

0

Ich poste checks and balances, die vor dieser Situation schützen sollten. Wenn jemand eine schönere Syntax geben kann, wäre das gut zu sehen.

Grundsätzlich sicherstellen, dass sowohl das Objekt als auch die Eigenschaft vorhanden ist, bevor Sie versuchen, es zu verweisen.