修改单个for循环出来的input值
发布于 6 年前 作者 taoliang 14316 次浏览 来自 问答

如图,仿照美图外卖的样子从后台遍历出所有商品条目,怎样才能在点击加好/减号的时候 只改变当前item的input[type=‘text’]的值,而不是全部input框的值

4 回复

算了,我想出来了,自问自答吧。。。我是通过点击加号/减号的时候,将这个商品的pid和后台取出来的原始商品数据进行for循环比对,只要点击按钮的pid和原始数据的其中一条pid相等,那就把这条原始数据的num++,当然取出来的原始数据中是没有num这个字段的话 就要在取出来后立即补一个num,默认值为0。

plus:function(e){

var products = this.data.product;

for(var i=0;i<products.length;i++){

if (products[i].pid == e.currentTarget.dataset.pid){

products[i].num ++;

}

}

this.setData({product:products})

},

})

给个参考,以下方式只需要单独更新当前修改的下标的值就可以了,不需要整个做setData数据更新:

var index = e.currentTarget.dataset.index;//index为数组下标值

undefined;

var obj = {};

obj[‘products[’ + index + ‘].num] = products[i].num++;

this.setData(obj);

给个参考,以下方式只需要单独更新当前修改的下标的值就可以了,不需要整个做setData数据更新:


var index = e.currentTarget.dataset.index;//index为数组下标值

undefined;

var obj = {};

obj['products[' + index + '].num'] = products[i].num++;

this.setData(obj);

index  事件

回到顶部