JQuery:如何知道我们正在处理的表单对象的类型?

时间:2011-10-24 19:19:51

标签: jquery

我正在构建一个交互式表单并根据用户的答案加载字段。现在我只有两种对象“输入无线电”和“textarea”。当我通过JQuery获得答案的价值时,我怎么能知道我在最后加载的字段集中处理的对象是什么?

这就是我的尝试:

$.fn.getNodeName = function() { // returns the nodeName of the first matched element, or ""
    return this[0] ? this[0].nodeName : "";
};

//var $something = $('input[type=radio]:checked:last');
var $something = $('fieldset:last').parent('nth-child(2)');

//$('#news ul li:first-child').addClass('active');

alert($something.getNodeName());

但它不起作用...... 感谢。

2 个答案:

答案 0 :(得分:2)

当元素是输入元素时,我已经扩展了你的jQuery函数也返回type

$.fn.getNodeName = function() {
    var elem = this[0]; //Get the first element of the jQuery object
    if(!elem) return "";
    var name = elem.nodeName.toLowerCase();
    return name == "input" ? "input[type=" + elem.type + "]" : name;
};

可能的返回值示例:
textareainput[type=text]input[type=button],...

如果您更喜欢其他输出格式,只需调整功能即可。指定类型的另一种方法是在返回值中添加一个额外的属性,例如:

$.fn.getNodeName = function() {
    var elem = this[0]; //Get the first element of the jQuery object
    if (!elem) return "";
    var name = elem.nodeName.toLowerCase();
    if (name == "input") {
        name.type = elem.type;
    }
    return name;
};

答案 1 :(得分:1)