Я - цикличное выполнение через ячейки в строке таблицы. каждая ячейка имеет текстовое поле в ней, и я хочу принять значение текстового поля и продвинуть ее на массив.
function dothing() {
var tds = $('#'+selected+' td');
var submitvals = new Array();
tds.each(function(i) {
var val = $(this).children('input')[0].val();
submitvals.push(val);
});
}
Существует больше к функции, но это - все, что релевантно. По некоторым причинам, когда я выполняю этот код, я получаю "HTMLInputElement, не имеет никакого метода 'val'". Я думал, что входные элементы, как предполагалось, имели a val()
метод в jQuery, который получил значение, таким образом, это не имеет никакого смысла. Я пропускаю что-то или делаю его неправильно?
val()
- это метод jQuery. .value
- это свойство DOM-элемента. Используйте [0].value
или .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);
});
}
.val()
- это функция jQuery, а не функция javascript. Therefore, change:
var val = $(this).children('input')[0].val()
To:
var val = $(this).children('input:eq(0)').val()
.val() - это метод jquery. Использование [0] возвращает элемент DOM, а не элемент jquery
var val = $(this).children('input:first').val();