就像是:
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
并将.name
DOM 冒泡到#main
.
5. 使用.text()
和计算数字时应该使用parseInt()
,否则结果会附加文本,所以$(".selected").text() + 1
给出的不是数字2
而是字符串11
。
在此处查看更新的小提琴:http: //jsfiddle.net/hdn6e/12/
和(在我眼中)优化的小提琴:http: //jsfiddle.net/hdn6e/13/