开发者

HTMLInputElement has no method 'val'

开发者 https://www.devze.com 2023-01-09 01:06 出处:网络
I\'m looping through cells in a table row. each cell has a text box in it, a开发者_运维百科nd I want to take the value of the text box and push it onto an array.

I'm looping through cells in a table row. each cell has a text box in it, a开发者_运维百科nd I want to take the value of the text box and push it onto an array.

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

Theres more to the function, but this is all that is relevant. For some reason, when I run this code, I get "HTMLInputElement has no method 'val'." I thought that input elements were supposed to have a val() method in jQuery that got the value so this makes no sense. Am I missing something, or doing it wrong?


val() is a jQuery method. .value is the DOM Element's property. Use [0].value or .eq(0).val()....


.val() is a jQuery function, not a javascript function. Therefore, change:

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() is a jquery method. Using [0] returns the DOM element, not the jquery element

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


What I don't understand, is why none of the suggested syntaxes on this or other questions similar to this seem to work for me. I had to do trial and error and eventually had to use:

MySelectElement.value = x;

It also didn't help that the Visual Studio Intellisense suggestions offer a whole other range of unworking method names, such as ValueOf().

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号