Подтвердить что ты не робот

HTMLInputElement не имеет метода '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);
        });
    }

Больше для функции, но это все, что имеет значение. По какой-то причине, когда я запускаю этот код, я получаю "HTMLInputElement не имеет метода" val ". Я думал, что элементы ввода должны иметь метод val() в jQuery, который получил значение, поэтому это не имеет смысла. Я что-то пропустил или сделал это неправильно?

4b9b3361

Ответ 1

val() - это метод jQuery. .value - свойство DOM Element. Используйте [0].value или .eq(0).val()....

Ответ 2

.val() - это функция jQuery, а не функция javascript. Поэтому измените:

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

To:

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

Ответ 3

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

Ответ 4

.val() - метод jquery. Использование [0] возвращает элемент DOM, а не элемент jquery

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

Ответ 5

Я не понимаю, почему ни один из предложенных синтаксисов по тем или иным вопросам, подобным этому, не работает для меня. Мне пришлось делать проб и ошибок и в конечном итоге пришлось использовать:

MySelectElement.value = x;

Это также не помогло, что предложения Visual Studio Intellisense предлагают целый ряд неработающих имен методов, таких как ValueOf().