jQuery根据标记名设置值 原始问题
是否有jQuery方法可以检查选择类型并适当设置值?例如,使用.html或.val 我已经制定了自己的方法来完成这项工作,但是我不确定这是否是完成这项任务的最佳方式jQuery根据标记名设置值 原始问题,jquery,Jquery,是否有jQuery方法可以检查选择类型并适当设置值?例如,使用.html或.val 我已经制定了自己的方法来完成这项工作,但是我不确定这是否是完成这项任务的最佳方式 $.fn.data = function(value) { if(this.is("input")){ this.val(value); }else if(... other type ...){ this.val(value); }else{ this.htm
$.fn.data = function(value) {
if(this.is("input")){
this.val(value);
}else if(... other type ...){
this.val(value);
}else{
this.html(value);
}
};
我还研究了标记名属性的使用。
变量类型=this.proptagName.toLowerCase
编辑:
标杆管理
对于感兴趣的人,我在这个.tagName之间做了一些基准测试;和$this.isinput;有一万张唱片
this.tagName.toLowerCase;x 10000条记录=185毫秒
$this.isinput;x 10000记录=1676毫秒由于.val主要用于输入元素,因此可以使用以下命令编写内容:
或者,如果您想更具体一些,您可以使用:
由于.val主要用于输入元素,因此可以使用以下命令编写内容:
或者,如果您想更具体一些,您可以使用:
以下是插件格式:
$.fn.setVal = function(value) {
return this.each(function() {
if ($.inArray( this.tagName.toLowerCase(), ['input', 'textarea', 'select'] ) != -1) {
$(this).val( value );
} else {
$(this).text( value );
}
});
};
按如下方式使用:
$('input, span').setVal('Some Value');
在这里查看它的操作:这里是插件格式:
$.fn.setVal = function(value) {
return this.each(function() {
if ($.inArray( this.tagName.toLowerCase(), ['input', 'textarea', 'select'] ) != -1) {
$(this).val( value );
} else {
$(this).text( value );
}
});
};
按如下方式使用:
$('input, span').setVal('Some Value');
请参见此处的操作:我个人建议使用[0]。标记名,而不是下面的任何一种jQuery方法。对于小用途来说,这不会有什么不同,但是如果你做了数千次这样的事情,这会快得多。jsperf:我个人建议使用[0]。标记名,而不是下面的任何一种jQuery方法。对于小用途来说,这不会有什么不同,但是如果你做了数千次这样的事情,这会快得多。谢谢,这是最简单的选择。我计划在现有插件上使用添加这个方法,但是我可以看到它作为jQuery名称空间的一部分很有用。谢谢,这是最简单的选择。我曾计划在现有插件上使用添加此作为方法,但是我可以看到它作为jQuery命名空间的一部分很有用。+1感谢此选项,但是在使用jQuert.is插入的标记名进行少量基准测试后,在大型页面上似乎会产生更好的性能。如果您感兴趣,我将基准测试结果添加到原始问题。+1感谢此选项运行良好,但是在使用jQuert.is插入的标记名进行少量基准测试后,似乎可以在大型页面上获得更好的性能。如果您感兴趣,我将基准测试结果添加到原始问题中。