Pregunta

Tengo dos tipos de cadenas como los identificadores de elementos en mi marcado HTML:

Fechas:

"april-23"
"march-20"

y los nombres de la temporada:

"springtime"
"winter"

Las fechas tienen un guión que separa el mes y el día.

Las estaciones son una sola palabra sin otras fichas.

Quiero asignar el mes o la temporada a una nueva variable llamada:

time_of_year

Si hago esto:

var time_of_year = $(this).attr("id").split('-')[0];

Se trabajará en los meses pero si lo llamo en el nombre de la temporada que no contiene el token, va a generar un error?

¿Cuál es la manera segura de hacer esto?

¿Fue útil?

Solución

No devuelve un error pero lo hace devolver una matriz con una longitud de uno.

Se podría hacer algo como esto:

var splitty = $(this).attr('id').split('-');
if (splitty.length > 1) {
   time_of_year = splitty[0];
}
else {
   // do something else magical here
}

Estos son los documentos sobre dividida .

Pero, si siempre desea que el primer valor y qué no se preocupa por los demás, es posible que utilices el código original w / o un problema:

var time_of_year = $(this).attr('id').split('-')[0]

Otros consejos

Usted puede comprobar para ver si el carácter de guión existe usando mystring.indexOf('-') (que devolverá -1 si no existe). Pero estoy bastante seguro de que si se divide una cadena en un personaje que no contiene ese personaje, que sólo devolverá la cadena original.

¿Por qué no añades un guión antes de realizar la división? Usted está tomando el primer elemento de todos modos. ¿Cuál es la diferencia si se trata de la primera de las dos o la primera de tres elementos?

var time_of_year = $ ((esto) .attr ( "id") + '- x') de división ( '-') [0];.

De esa manera usted está agarrando el elemento a la izquierda del primer guión, y siempre habrá un primer guión:

"Abril-23-x" "Primavera-x"

(Tenga en cuenta, no he probado esto, y no estoy estacar mi vida en la sintaxis! Pero tal vez va a ser una nueva idea para usted.)

Edit: Por cierto, creo que el ejemplo en el Post original funcionará de todos modos. Dividir debe devolver una lista de longitud 1, y que está agarrando el [0] "elemento XX, lo cual es perfecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top