函数比javascript中的步进器增加/减少更多
function to increment / decrement more than stepper in javascript
你好,我正在尝试重写一个函数,该函数将在javascript中递增/递减1步以上。以下是我迄今为止尝试的
这是一个代码笔链接http://codepen.io/Ongomobile/pen/XdyBgv/
这是一个步进
<div class="qtyDiv">
<label class="qtyLabel" for="qty1 " name"one"><abbr title="Quantity">Qty</abbr></label>
<input class="qtyInput" id="qty1" value="0" name"one" />
<!-- <button class=" tallyBtn" id="down" onclick="modify_qty(-1)">-1</button>
<button class="tallyBtn"id="up" onclick="modify_qty(1)">+1</button> -->
<button class=" tallyBtn" id="down" onclick="stepperVal("one",-1)">-1</button>
<button class="tallyBtn"id="up" onclick="stepperVal("one",1)">+1</button>
</div>
// This is current one
function modify_qty(val) {
var qty = document.querySelector("#qty1").value;
var new_qty = parseInt(qty,10) + val;
if (new_qty < 0) {
new_qty = 0;
}
document.querySelector("#qty1").value = new_qty;
return new_qty;
}
这就是我尝试的
function stepperVal(name,val){
var qty = 0;
var new_qty = parseInt(qty,10) + val;
if (new_qty < 0) {
new_qty = 0;
}
[name].value = new_qty;
return new_qty;
}
几个问题:
- 这条线路
parseInt(qty,10) + val;
的用途是什么?parseInt
用于将字符串转换为其等效数字。以10为基数来调用它没有多大意义 - 不确定name参数对
stepperVal
的意义是什么。value
参数不是已经暗示了要阶梯的量吗 - 通过将
this
传递给在onclick
中声明的函数,可以传递对触发onclick
事件的对象的引用 new_qty
总是计算为val
- CCD_ 10实际上与CCD_。为什么不这么说呢
更新的代码
将中的"一"替换为this
<div class="qtyDiv">
<label class="qtyLabel" for="qty1 " name"one"><abbr title="Quantity">Qty</abbr></label>
<input class="qtyInput" id="qty1" value="0" name"one" />
<!-- <button class=" tallyBtn" id="down" onclick="modify_qty(-1)">-1</button>
<button class="tallyBtn"id="up" onclick="modify_qty(1)">+1</button> -->
<button class=" tallyBtn" id="down" onclick="stepperVal(this,-1)">-1</button>
<button class="tallyBtn"id="up" onclick="stepperVal(this,1)">+1</button>
</div>
简化JS:
function stepperVal(event, val){
clicked_link = event.target
return clicked_link.value = Math.max(0, val); # Return the greater of 0 and `val`
}
使用以下它必须工作:
function stepperVal(name,val){
var qty = 0;
var new_qty = parseInt(document.getElementsByName(name),10) + val;
if (new_qty < 0) {
new_qty = 0;
}
document.getElementsByName(name).value = new_qty;
return new_qty;
}
相关文章:
- JavaScript:单击时相对于父级增加变量值
- 在SoundCloud中,使用JavaScript SDK流式传输曲目是否会增加该曲目的playback_count
- JavaScript到PHP的时间戳失败,增加了大约一个半月的时间
- 函数比javascript中的步进器增加/减少更多
- javascript函数,它将数组作为输入,将每个数组元素增加1,并返回增加值的新数组
- Mscrm 2011仪表板通过JavaScript或插件增加行数
- 使用JavaScript增加上/左/下/右值
- 计算数组中的数据数量并增加javascript
- 如何使用用户定义的值来增加Javascript中的值
- 如何通过宽松来增加javascript循环延迟
- 如何从Mailchimp增加JavaScript弹出窗口的上边距
- 如何增加JavaScript变量与onclick和包围JavaScript数组
- 更改哪个元素增加JavaScript
- 增加JavaScript settimeout函数
- 单调地增加JavaScript中的时间
- 如何增加JavaScript变量名
- 增加Javascript鼠标事件
- 创建新对象时,Hangman-Timer 速度增加 (JavaScript)
- 动态增加Javascript对象成员
- 如何在一个函数中增加JavaScript getElementById变量