请教下为什么我点击+或-按钮后,都是两个文本框的数值一起增加和一起减少?

lqbr123 2017-07-27 09:30:36
<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script>

function add(){
var s1_arr=document.getElementsByName("shuliang")
for(var i=0;i<s1_arr.length;i++){
sl=s1_arr[i].value;
sl=parseInt(sl)+1;
s1_arr[i].value=sl;
}
}
function decrease(){
var s1_arr=document.getElementsByName("shuliang")
for(var i=0;i<s1_arr.length;i++){
sl=s1_arr[i].value;
if (sl>0){
sl=parseInt(sl)-1;
}
s1_arr[i].value=sl;
}
}
</script>

</head>

<body>
<input name="a" type="button" id="a" onClick="decrease()" value="-"><input id="shuliang" value="1" onChange="abc()" style="width:30px; text-align:center"/><input name="b" type="button" id="b" onClick="add()" value="+"><br/>
<input name="a" type="button" id="a" onClick="decrease()" value="-"><input id="shuliang" value="1" onChange="abc()" style="width:30px; text-align:center"/><input name="b" type="button" id="b" onClick="add()" value="+">
</body>
</html>

请教下为什么我点击+或-按钮后,都是两个文本框的数值一起增加和一起减少?
...全文
196 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
看着是个昵称 2017-07-27
  • 打赏
  • 举报
回复
引用 4 楼 lqbr123 的回复:
[quote=引用 3 楼 yanluofeihong 的回复:] 获取到相同的name值,当然会一起变化,你可以写成点击减号的时候,获取它的相邻的元素(next)来操作,点击加号的时候,获取prev()
谢谢指点,看来我还没入门啊,应该系统的学习一下[/quote] 好好学吧,这行里面的东西太多了,我也是还在慢慢学习中
lqbr123 2017-07-27
  • 打赏
  • 举报
回复
引用 3 楼 yanluofeihong 的回复:
获取到相同的name值,当然会一起变化,你可以写成点击减号的时候,获取它的相邻的元素(next)来操作,点击加号的时候,获取prev()
谢谢指点,看来我还没入门啊,应该系统的学习一下
看着是个昵称 2017-07-27
  • 打赏
  • 举报
回复
获取到相同的name值,当然会一起变化,你可以写成点击减号的时候,获取它的相邻的元素(next)来操作,点击加号的时候,获取prev()
  • 打赏
  • 举报
回复
通过dom关系获取,你的代码在标准浏览器就跑不了。因为没有name,ie8-比较奇葩getElementsByName能通过id获取,getElementsByName得到的dom数据你不是遍历全部更新了

注意dom对象之间不要存在空格,要不标准浏览器会报错,没做兼容处理

<script>
function add(el) {
var ipt = el.previousSibling;
ipt.value = (parseInt(ipt.value) || 0) + 1;
}
function decrease(el) {
var ipt = el.nextSibling;
ipt.value = (parseInt(ipt.value) || 0) - 1;
}
</script>
<input name="a" type="button" id="a" onclick="decrease(this)" value="-"><input id="shuliang" value="1" style="width:30px; text-align:center" /><input name="b" type="button" id="b" onclick="add(this)" value="+"><br />
<input name="a" type="button" id="a" onclick="decrease(this)" value="-"><input id="shuliang" value="1" style="width:30px; text-align:center" /><input name="b" type="button" id="b" onclick="add(this)" value="+">
world_broken 2017-07-27
  • 打赏
  • 举报
回复
name相同

87,993

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧