<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.content span.right i,.content span.right input{float: left; display: inline-block; width: .62rem; height: .5rem; line-height: .5rem; text-align: center; font-size: .26rem; background: #fff;}
i.minus,i.plus{width: .6rem !important; background: #F7F4F4 !important;} </style>
<script>
document.getElementsByTagName('html')[0].style.fontSize = document.documentElement.clientWidth/750*100 + 'px';
</script></head>
<body>
<div class="content">
<p class="price"><span>¥</span><strong>32</strong></p>
<span class="right count"><i class="minus">-</i><input class="num" type="text" name="" value="8"><i class="plus">+</i></span>
</div>
<div class="content">
<p class="price"><span>¥</span><strong>30</strong></p>
<span class="right count"><i class="minus">-</i><input class="num" type="text" name="" value="8"><i class="plus">+</i></span>
</div>
<div class="content">
<p class="price"><span>¥</span><strong>40</strong></p>
<span class="right count"><i class="minus">-</i><input class="num" type="text" name="" value="8"><i class="plus">+</i></span>
</div>
<script type="text/javascript">
var content = document.getElementsByClassName('content');
var minus = document.getElementsByClassName('minus');
var plus = document.getElementsByClassName('plus');
var num = document.getElementsByClassName('num');
var price = document.getElementsByTagName('strong');
var length = content.length;
var count = 0;
var unitPrice = [];
var json = {};
json.choose = 0;
json.uPrice = 0; for(var i=0; i<content.length; i++) {
unitPrice.push(json)
} //加减
for(var i=0; i<content.length; i++) {
minus[i].index = i;
plus[i].index = i;
unitPrice[i].uPrice = num[i].value * price[i].innerHTML;
console.log(unitPrice[i]);
minus[i].addEventListener('touchstart', function() {
num[this.index].value -= 1;
if(num[this.index].value < 0) {
num[this.index].value = 0;
}
console.log(this.index);
unitPrice[this.index].uPrice = 1;
console.log(unitPrice);
})
}</script>
</body>
</html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<style>
.content span.right i,.content span.right input{float: left; display: inline-block; width: .62rem; height: .5rem; line-height: .5rem; text-align: center; font-size: .26rem; background: #fff;}
i.minus,i.plus{width: .6rem !important; background: #F7F4F4 !important;} </style>
<script>
document.getElementsByTagName('html')[0].style.fontSize = document.documentElement.clientWidth/750*100 + 'px';
</script></head>
<body>
<div class="content">
<p class="price"><span>¥</span><strong>32</strong></p>
<span class="right count"><i class="minus">-</i><input class="num" type="text" name="" value="8"><i class="plus">+</i></span>
</div>
<div class="content">
<p class="price"><span>¥</span><strong>30</strong></p>
<span class="right count"><i class="minus">-</i><input class="num" type="text" name="" value="8"><i class="plus">+</i></span>
</div>
<div class="content">
<p class="price"><span>¥</span><strong>40</strong></p>
<span class="right count"><i class="minus">-</i><input class="num" type="text" name="" value="8"><i class="plus">+</i></span>
</div>
<script type="text/javascript">
var content = document.getElementsByClassName('content');
var minus = document.getElementsByClassName('minus');
var plus = document.getElementsByClassName('plus');
var num = document.getElementsByClassName('num');
var price = document.getElementsByTagName('strong');
var length = content.length;
var count = 0;
var unitPrice = [];
var json = {};
json.choose = 0;
json.uPrice = 0; for(var i=0; i<content.length; i++) {
unitPrice.push(json)
} //加减
for(var i=0; i<content.length; i++) {
minus[i].index = i;
plus[i].index = i;
unitPrice[i].uPrice = num[i].value * price[i].innerHTML;
console.log(unitPrice[i]);
minus[i].addEventListener('touchstart', function() {
num[this.index].value -= 1;
if(num[this.index].value < 0) {
num[this.index].value = 0;
}
console.log(this.index);
unitPrice[this.index].uPrice = 1;
console.log(unitPrice);
})
}</script>
</body>
</html>
解决方案 »
- 用jquery的easyui控件中的使用ajax url使用问题
- jquery easyui combotree 的onSelect事件
- 为啥我的动态滤镜没效果呢?
- ExtJs 表单提交后 语法错误
- 有什么好的方法可以将字符串转化为日期?
- 关于javascript截取字符串问题
- 这个正则表达式该如何写?
- 怎样让一个IFrame不管加载哪个页面都触发onmouseup事件.
- 请教:如何在目标串中查找出某一单词,并且不区分大小写
- 关于JS下拉菜单出错的问题
- sorttable.js对于table有跨行列的操作的时候 排序功能会失效 有什么解决办法吗?
- 想要让表格里嵌套的对应行的div层显示和影藏.
var json = {};
json.choose = 0;
json.uPrice = 0;
unitPrice.push(json)
}
在你定义var json = {};时,因为是对象变量(参见js变量类型,值类型与引用类型),所以是在栈内存中保存了json变量指向堆内存的地址,在堆内存该地址中保存了该变量的数据内容。改变json变量,是对堆内存中该地址的数据内容改变。
当你在循环外定义json时,在你的循环中unitPrice.push(json),每次push的元素(json变量)实际上指向相同的一个内存地址。如果改变了某个元素,即改变了该元素指向的内存地址里的内容,其他元素也会发生相同的改变(因为它们指向同一个地址啊)。
以上