Tengo varios js para "bucles" y necesito la sintaxis más limpia para especificar un valor de identificación usando el "contador de bucle for". Aquí hay un ejemplo que funciona, pero parece torpe y no me emociona mucho tener que usar un código tan tonto. Mira eso:
"USCF_ID' +i +'"' +'
// Número de identificación de USCF
items += '<td style="display:none;"> <input onblur="showID();" name = "ID" id = "USCF_ID' +i +'"' +' name = "USCF_ID" /> </td>';¿Puede hacer una sugerencia sobre la expresión de ID = USCF_ID1 programáticamente en js simple? No jQuery si puede evitarlo, por favor.
Fue un poco difícil para mí seguir su pregunta, pero lo que obtuve de su explicación es que solo está tratando de encontrar una forma más limpia de concatenar sus datos. Le recomendaría que use plantillas de cadenas aquí. Aquí hay un ejemplo:
items += `<td style="display:none;"> <input onblur="showID();" name = "ID" id = "USCF_ID${i}" name = "USCF_ID" /> </td>`; Crear una cadena con la sintaxis `...` crea un literal de plantilla de cadena que le permite insertar código JavaScript entre los corchetes ${ } y concatenar el resultado.
Puede usar una plantilla de cadena donde "USCF_ID' +i +'"' +' se puede reemplazar por ${id} . Las plantillas de cadena se definen usando un carácter de acento grave - ` :
items += ` <td style="display:none;"> <input onblur="showID();" name = "ID" id = "USCF_ID${id}" name = "USCF_ID" /> </td>`;Además, puede extraer la plantilla en una función:
function getItem(id) { return ` <td style="display:none;"> <input onblur="showID();" name = "ID" id = "USCF_ID${id}" name = "USCF_ID" /> </td>`; }Entonces puedes generar tu lista como:
items += getItem(id);JS en sí mismo no tiene un formato de cadena incorporado como otros idiomas (con una excepción más adelante). Puede simularlo usted mismo en un caso simple como este con el método de replace :
template = '<td style="display:none;"><input onblur="showID();" name="ID" id="USCF_ID$i" name="USCF_ID"/></td>'; ... items += template.replace("$i", i);ES6 tiene cadenas de plantillas que pueden hacer esto, pero es posible que no estén disponibles según el navegador que esté tratando de admitir (tenga en cuenta las comillas invertidas en lugar de las comillas simples):
items += `<td style="display:none;"><input onblur="showID();" name="ID" id="USCF_ID${i}" name="USCF_ID"/></td>`;