1

我有两个 div,A 和 B。它们都有数值 1。现在我有一个“添加”按钮。我想一次选择一个 div 并通过单击添加来增加其中的值。这个怎么做?

<div id="A">1</div>
<div id="B">1</div>

<input type='button' value="ADD" id="add">

脚本

$("#add").on('click', function(){
   $(??).text($(??).text() + 1);
});

如何将添加按钮链接到我单击的 div,并在单击添加时保持选择。

4

4 回答 4

2

就像是:

var $divs = $('div');
var $addButton = $("#add");

// On click on a div remove calss from eventually previous clicked div and add class to current clicked div
$divs.on('click', function () {
    var $divClicked = $(this);
    $divs.removeClass('has-been-clicked')
    $divClicked.addClass('has-been-clicked');
});

// On click on button, find previous marked div and play with it. If no div has been clicked yet, nothing happens
$addButton.on('click', function () {
    var $lastDivClicked = $divs.filter('.has-been-clicked').first();

    if ($lastDivClicked.length > 0) {
        var currentValue = parseInt($lastDivClicked.text());
        $lastDivClicked.text(++currentValue);
    }
});

演示:http: //jsfiddle.net/kxMmA/7/

编辑

@user1545024:哇,您可能会查看 jQuery 文档和手册...
1. 没有功能.nearest()
2. ID(在您的情况下#main)必须是 unqiue。
3. 添加类selected时,应先从兄弟姐妹中删除该类。
4. 您只需要一个事件处理程序作为点击.qty并将.nameDOM 冒泡到#main.
5. 使用.text()和计算数字时应该使用parseInt(),否则结果会附加文本,所以$(".selected").text() + 1给出的不是数字2而是字符串11

在此处查看更新的小提琴:http: //jsfiddle.net/hdn6e/12/
和(在我眼中)优化的小提琴:http: //jsfiddle.net/hdn6e/13/

于 2013-03-14T13:23:34.243 回答
1

添加一个类, .selected 可能,单击 div 时,然后找到它$('.selected')

于 2013-03-14T13:20:44.150 回答
1

摆弄它

var myDiv;
$("div").on('click', function(){myDiv = $(this)});

$("#add").click(function() {
    myDiv.text(parseInt(myDiv.text(),10)+1);
});
于 2013-03-14T13:24:44.470 回答
0

另一种可能性是创建一个包含您上次单击的 div 的变量。

将单击侦听器添加到 div 以更新您的引用变量,并从“添加”按钮单击处理程序中处理引用变量中的 div。

var lastClickedDiv;

$("div").on('click', function()
{
  lastClickedDiv = $(this);
});

$("#add").on('click', function(){
   var newNumber = parseInt(lastClickedDiv.text()) + 1
   lastClickedDiv.text(newNumber);
});

jsfiddle 演示

于 2013-03-14T13:25:02.210 回答