我正在构建一个交互式表单并根据用户的答案加载字段。现在我只有两种对象“输入无线电”和“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());
但它不起作用...... 感谢。
答案 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;
};
可能的返回值示例:
textarea
,input[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)