Ответ 1
val()
- это метод jQuery. .value
- свойство DOM Element. Используйте [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);
});
}
Больше для функции, но это все, что имеет значение. По какой-то причине, когда я запускаю этот код, я получаю "HTMLInputElement не имеет метода" val ". Я думал, что элементы ввода должны иметь метод val()
в jQuery, который получил значение, поэтому это не имеет смысла. Я что-то пропустил или сделал это неправильно?
val()
- это метод jQuery. .value
- свойство DOM Element. Используйте [0].value
или .eq(0).val()
....
.val()
- это функция jQuery, а не функция javascript. Поэтому измените:
var val = $(this).children('input')[0].val()
To:
var val = $(this).children('input: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. Использование [0] возвращает элемент DOM, а не элемент jquery
var val = $(this).children('input:first').val();
Я не понимаю, почему ни один из предложенных синтаксисов по тем или иным вопросам, подобным этому, не работает для меня. Мне пришлось делать проб и ошибок и в конечном итоге пришлось использовать:
MySelectElement.value = x;
Это также не помогло, что предложения Visual Studio Intellisense предлагают целый ряд неработающих имен методов, таких как ValueOf().