我正在使用PHPStorm,并有以下js代码
$('#id'.val($('#id'.attr('default'));
这个想法是将输入字段的值重置为它的默认值,这是在输入元素的default
属性中设置的。
现在IDE建议我避免重复的选择器。
虽然它正在工作,我有兴趣找出什么是优化这行代码的最佳方法?
不完全是您所要求的,但更多的未来证明使用数据而不是属性。你甚至可以在那里存储复杂的数据或其他信息,如"originalvalue"或"lastchangedvalue"等。
在属性中存储是可以的,但我更喜欢在元素的数据中存储这样的东西,如:
<myelementtag id="myid" data-defaultvalue="defaultvalue" />
然后像这样访问它:
$('#myid').data("defaultvalue");
例如:var myElement = $('#myid');
myElement.value = myElement.data('defaultvalue');
要重置默认值吗?
var mynewdefault = "mynewvalue";myElement。数据(defaultvalue, mynewdefault);
由于您只要求一个选择器和一行代码,请按照jQuery文档(中间部分)的说明使用:
$("#id").val(function(index,value) {
return $(this).attr('default');
});
或者如果你想避免使用$(this):
$("#id").val(function (index, value) {
return this.getAttribute('default');
});
JSFiddle
是的,正如其他成员指出的那样,如果您使用data
属性(data-defaultValue
)来代替会更好。
这是一个更紧凑的解决方案:
var id = $('#id');
id.val(id.attr('default'));
你真的不需要每次都用$(...)
将jQuery元素存储在变量中:
var $id = $('#id');
$id.val($id.attr('default'));