htmlinputelement attribute javascript jquery html

javascript - htmlinputelement - html title attribute



HTMLInputElement no tiene el método ''val'' (5)

Estoy recorriendo las celdas en una fila de la mesa. cada celda tiene un cuadro de texto, y quiero tomar el valor del cuadro de texto y insertarlo en una matriz.

function dothing() { var tds = $(''#''+selected+'' td''); var submitvals = new Array(); tds.each(function(i) { var val = $(this).children(''input'')[0].val(); submitvals.push(val); }); }

Hay más en la función, pero esto es todo lo que es relevante. Por alguna razón, cuando ejecuto este código, obtengo "HTMLInputElement no tiene método ''val''". Pensé que se suponía que los elementos de entrada tenían un método val() en jQuery que tenía el valor, así que esto no tiene sentido. ¿Me estoy perdiendo algo, o lo estoy haciendo mal?


.val () es un método jquery. Usar [0] devuelve el elemento DOM, no el elemento jquery

var val = $(this).children(''input:first'').val();


Lo que no entiendo es por qué ninguna de las sintaxis sugeridas en esta u otra pregunta similar a esta parece funcionar para mí. Tuve que hacer prueba y error y finalmente tuve que usar:

MySelectElement.value = x;

Tampoco ayudó que las sugerencias de Visual Studio Intellisense ofrezcan otro rango de nombres de métodos que no funcionan, como ValueOf ().


.val() es una función jQuery, no una función javascript. Por lo tanto, cambiar:

var val = $(this).children(''input'')[0].val()

A:

var val = $(this).children(''input:eq(0)'').val()


val() es un método jQuery. .value es la propiedad del elemento DOM. Utilice [0].value o .eq(0).val() ....


function dothing() { var tds = $(''#''+selected+'' td''); var submitvals = new Array(); tds.each(function(i) { var val = $($(this).children(''input'')[0]).val(); submitvals.push(val); }); }