首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在jQuery中确定输入与文本区域

问在jQuery中确定输入与文本区域
EN

Stack Overflow用户
提问于 2011-11-29 02:36:17
回答 6查看 33.7K关注 0票数 20

我希望遍历一个表单,将每个元素添加到一个区域。问题是其中的一些元素是选择、输入和文本框。我知道我可以使用:input来解决这里的问题(不过,我真的不需要这样做)。问题是我很难确定如何判断元素是否是文本区域、输入、选择等。我需要正确地这样做,因为据我所知,jQuery("input#someinput").val()对于输入非常有效,但是对于文本区域,我可能需要jQuery("textarea#sometexarea").text()。我不确定这是否存在..。

不管怎样,到目前为止我的函数如下:

代码语言:javascript
复制
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;
}
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2011-11-29 02:44:27

val()与<input>、<select>和<textarea>元素一起工作得同样好。

如果您仍然希望确定:input选择器匹配的元素的实际类型,则可以结合使用is()和element selectors

代码语言:javascript
复制
$(":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.
    }
});
票数 63
EN

Stack Overflow用户

发布于 2011-11-29 02:42:42

您应该能够使用jQuery的.is()函数--只需将选择器传递给.is(),如果元素与选择器匹配,它将返回true。因此,要查看您是否有一个文本区域,您只需检查:

代码语言:javascript
复制
if($(this).is("textarea")) { doStuff(); }

http://api.jquery.com/is/

票数 3
EN

Stack Overflow用户

发布于 2011-11-29 02:46:01

看看nodeName属性。

代码语言:javascript
复制
jQuery(id).children().map(function(){
    console.log( children[i].nodeName.toLowerCase() );
});

您可以但不一定要使用jQuery中的is方法(这里是开销)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8300584

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档