Tengo una función javascript que comprueba para ver si existe un artista en un archivo XML:Javascript no salir de la función
function artistExists(artist) {
// get data from artists.xml
$('.loading').show();
$.get(artists_xml, function(xml){
$('.loading').hide();
$(xml).find('artist').each(function(){
if ($(this).find("ar_artist").text() == artist.val()) {
alert ('artist exists');
return true;
} //end if
}); // end each
alert ('artist does not exist');
return false;
}); // end .get function
} // end of artistExists function
Estoy en lo cierto al pensar que el 'return true' línea debe dejar de ejecución de la función? Pensé que sí, pero después de encontrar un registro y ejecutar la primera ejecución de alerta continúa a la alerta de falla en la parte inferior.
¿Qué estoy haciendo mal por favor? Gracias.
Ha pasado mucho tiempo, pero tengo una pregunta al respecto: traté de usar 'return' solamente y detuvo el' .each', así que 'return false' no es algo que debe hacer o hay algo ¿Yo deberia saber? –
@CagatayUlubay: Simplemente 'return' no detendrá el ciclo' each', simplemente salta de la devolución de llamada para esa iteración; el ciclo continuará con la siguiente iteración. 'return false' saltará de la devolución de llamada para esa iteración ** y ** stop looping. –