Javascript:以下哪种实现更高效/更好?
我有一个图标,点击会增加数字输入的值 我最初写的是:Javascript:以下哪种实现更高效/更好?,javascript,jquery,Javascript,Jquery,我有一个图标,点击会增加数字输入的值 我最初写的是: $('.icon-chevron-up').click(function(){ var input = $(this).next(); var value = eval(input.val()); input.val((value+1).toString()); $(this).next.val(value+1); }); $('.icon-chevron-up').click(function(){ $(
$('.icon-chevron-up').click(function(){
var input = $(this).next();
var value = eval(input.val());
input.val((value+1).toString());
$(this).next.val(value+1);
});
$('.icon-chevron-up').click(function(){
$(this).next().val((eval($(this).next().val()) + 1).toString());
});
然后我将其改写为:
$('.icon-chevron-up').click(function(){
var input = $(this).next();
var value = eval(input.val());
input.val((value+1).toString());
$(this).next.val(value+1);
});
$('.icon-chevron-up').click(function(){
$(this).next().val((eval($(this).next().val()) + 1).toString());
});
有没有更好的方法?如果是这样的话,为什么呢?这些都不是最有效率的<不需要代码>评估,如果需要性能,应缓存选择器。有几种方法可以提高效率,但我会这样做:
$('.icon-chevron-up').click(function() {
var $this = $(this),
val = $this.next().val();
$this.next().val( ++val + '' );
});
++
将val
强制转换为一个数字并添加1
<代码>+'将上一个数字转换为字符串
如果您想要不那么简洁(我想更可读)的内容:
你说的输入是什么意思?它应该是文本输入还是仅仅是一个html标记
<button class="icon-chevron-up">Increase</button>
<div id="numinput">12</div>
var input = $('#numinput').html();
$('.icon-chevron-up').click(function(){
input++;
$('#numinput').html(input);
});
增加
12
var input=$('#numinput').html();
$('.icon chevron up')。单击(function(){
输入++;
$('#numinput').html(输入);
});
不要使用eval来解析整数,而是使用parseInt
eval()
会带来安全问题;)试试看:$(this.next().val(++$(this.next().val()+'')