在jQuery中确定输入vs textarea

zeb*_*und 18 forms jquery

我希望迭代一个表单,将每个元素添加到一个区域.问题是这些元素中的一些是选择,输入和文本框.我知道我可以:input用来解决这里的问题(不过,我真的不需要).问题在于我无法确定如何查看元素是否为textarea,输入,选择等.我需要正确地执行此操作,因为据我所知,它jQuery("input#someinput").val()非常适合输入,但对于我可能需要的textarea jQuery("textarea#sometexarea").text().我不确定这是否存在......

无论如何,到目前为止这是我的功能:

function getAllFormElements(id) {

    var elements = new Array();

    jQuery(id).children().map(function(){

        for (var index = 0; index < children.length; index++) {

            elements[i] = jQuery(children[i]).val();

        }

    })

        return elements;
}
Run Code Online (Sandbox Code Playgroud)

Fré*_*idi 55

VAL()效果一样好<input>,<select><textarea>元素.

如果您仍想确定:input选择器匹配的元素的实际类型,可以将is()元素选择器一起使用:

$(":input").each(function() {
    var $this = $(this);
    if ($this.is("input")) {
        // <input> element.
    } else if ($this.is("select")) {
        // <select> element.
    } else if ($this.is("textarea")) {
        // <textarea> element.
    }
});
Run Code Online (Sandbox Code Playgroud)