Estoy luchando un poco con la forma de hacer una selección simple de un elemento específico en una matriz de elementos en JavaScript. Considera lo siguiente:
var htmlString = "<span>someText</span><input type='hidden' class='idBox' name='id' data-id='6026' value='6026'>"; var eleArray = $.parseHTML(htmlString); var inputVal = $(eleArray[1]).val(); inputVal contendrá el valor del campo de entrada. En este caso específico, sería 6026. Sin embargo, no me gusta la forma en que obtengo este valor seleccionando el índice 1 en eleArray , que es el elemento de entrada. Me gustaría seleccionarlo por el id de los elementos de entrada, que en este caso por clase sería idBox o id de nombre... Pero no sé cómo hacerlo.
Algún consejo ?
parseHTML le dará una variedad de elementos que puede usar con jQuery, para que pueda filter de la manera habitual que lo haría con elementos agregados al DOM:
var htmlString = "<span>someText</span><input type='hidden' class='idBox' name='id' data-id='6026' value='6026'>"; var eleArray = $.parseHTML(htmlString); var inputVal = $(eleArray).filter("[name='id']").val() console.log(inputVal); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>Puede usar la sintaxis del selector de clase :
const htmlString = "<span>someText</span><input type='hidden' class='idBox' name='id' data-id='6026' value='6026'>"; $($.parseHTML(htmlString)).filter(".idBox").val(); // => '6026'Otra solución usando el nombre de entrada:
const htmlString = "<span>someText</span><input type='hidden' class='idBox' name='id' data-id='6026' value='6026'>"; $($.parseHTML(htmlString)).filter("input[name='id']").val();