用js如何实现点击加或减 其数值做相应的改变

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用js如何实现点击加或减 其数值做相应的改变相关的知识,希望对你有一定的参考价值。

<div class="right"> <span class="add">+</span> <span class="math">1</span> <span class="jian">-</span></div>点击加减符号 数字做相应的增或减 (+1&-1)

<script>
var span = document.getElementsByTagName("span");
for (var i = 0; i < span.length; i++)
(function (i)
span[i].addEventListener('click', function ()
var value = this.innerhtml;
var math = document.getElementsByClassName("math")[0];
var mvalue = math.innerHTML;
if (value == '+')
mvalue++;
math.innerHTML = mvalue;

else if (value == '-')
if (mvalue == '1')
return;

mvalue--;
math.innerHTML = mvalue;

)
)(i);

</script>
每次加1,给每个span标签添加点击事件,在里面判断点的是+还是-做后在赋值
参考技术A 点击之后 math-1

加或减按钮的值在swift中不更新。

我在购物车视图控制器上尝试了一些代码,如下图所示。

enter image description here

在tableview中,每一行的值都在更新,如果我点击product1 plusbutton计数增加,显示为1.当我点击product2 plusbutton值显示为2.计数增加.减去每次minusbutton也是这样工作的。

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
         let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell") as! CustomTableViewCell
 cell.minusButton.tag = indexPath.row
        cell.plusbutton.tag = indexPath.row

        cell.minusButton.addTarget(self, action: #selector(minusbuttonClick), for: .touchUpInside)
        cell.plusbutton.addTarget(self, action: #selector(plusButtonClick), for: .touchUpInside)
        return cell
    }

    @objc func minusbuttonClick(sender : UIButton)
        {
            let cell = Tableview.cellForRow(at: NSIndexPath(row: sender.tag, section: 0) as IndexPath) as! CustomTableViewCell
            if(count > 0){
                count -= 1
            }
            let myString = String(count)
            cell.countLabel.text = myString
            if count == 0{
                 cell.countLabel.text = ""
            }
            self.Tableview.reloadData()

        }

        @objc func plusButtonClick(sender : UIButton)
        {
            let cell = Tableview.cellForRow(at: NSIndexPath(row: sender.tag, section: 0) as IndexPath) as! CustomTableViewCell
             count += 1
            let myString = String(count)
            cell.countLabel.text = myString
            self.Tableview.reloadData()
        }

我必须显示当我点击product1时,数值应该是1,如果我点击product2时,数值为1减去也是一样的减少。

答案

首先要做的是创建一个结构来保存你的数据。

struct ProductData {
    var count : Int
    var name : String
}

您可以在您的ViewController中使用它。

var productData : [ProductData] = []   

当然,你需要添加一些数据--这里有一组简单的数据,可以开始使用

override func viewDidLoad() {
    super.viewDidLoad()

    // set up some data.
    productData.append(ProductData(count: 0, name: "product 1"))
    productData.append(ProductData(count: 0, name: "product 2"))
    productData.append(ProductData(count: 0, name: "product 3"))
    productData.append(ProductData(count: 0, name: "product 4"))
}

使用前面描述的委托模式 swift:当单元格中的按钮被点击时,如何获得indexpath.row? 更新您的自定义表格视图单元格

protocol TableViewCellCustomDelegate: class {
    func buttonTapped(index : Int, delta : Int)
}

class TableViewCellCustom: UITableViewCell {

    weak var delegate: TableViewCellCustomDelegate?

    @IBOutlet weak var minusButton: UIButton!
    @IBOutlet weak var plusButton: UIButton!
    @IBOutlet weak var countLabel: UILabel!
    @IBOutlet weak var productLabel: UILabel!

    override func prepareForReuse() {
        super.prepareForReuse()
        self.delegate = nil
    }

    @IBAction func minusButtonClick(_ sender: UIButton) {
        delegate?.buttonTapped(index: sender.tag, delta : -1)
    }

    @IBAction func plusButtonClick(_ sender: UIButton) {
        delegate?.buttonTapped(index: sender.tag,delta : +1)
    }
}

更新你的视图控制器中的委托方法。 我在这里只用一个方法来添加或删除,但如果你想做其他事情,你也可以把它拆开。

extension ViewController: TableViewCellCustomDelegate {
    func buttonTapped(index: Int, delta : Int)
    {
        productData[index].count += delta
        if productData[index].count < 0
        {
            productData[index].count = 0
        }

        tableView.reloadRows(at: [IndexPath(row: index, section: 0)], with: .automatic)
    }
}

并更新你的 cellForRowAt 定义

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "CustomTableViewCell", for: indexPath) as! TableViewCellCustom
    cell.countLabel.text = "(productData[indexPath.row].count)"
    cell.productLabel.text = productData[indexPath.row].name

    cell.minusButton.tag = indexPath.row
    cell.plusButton.tag = indexPath.row

    cell.delegate = self

    return cell
}

以上是关于用js如何实现点击加或减 其数值做相应的改变的主要内容,如果未能解决你的问题,请参考以下文章

加或减按钮的值在swift中不更新。

日期简单加或减

nodejs操作时间,例如加或减时间

nodejs操作时间,例如加或减时间

js如何实现点击导航栏后相应导航栏实现选中效果的切换

tm1629 只用4个按键 怎么读取