何かのようなもの:
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。関数はありません2.ID .nearest()
(あなたの場合#main
)はunqiueでなければなりません。
3.クラスを追加するときselected
は、最初にこのクラスを兄弟から削除する必要があります。
4.クリックするだけでイベントハンドラーが1つ必要に.qty
なり.name
、DOMがにバブルアップします#main
。
5..text()
数値を使用して計算する場合はparseInt()
、を使用する必要があります。そうしないと、結果にテキストが追加されるため$(".selected").text() + 1
、数値ではなく2
文字列が表示されます11
。
ここで更新されたフィドルを参照してください:http://jsfiddle.net/hdn6e/12/
そして(私の目には)ここで最適化されたフィドル:http://jsfiddle.net/hdn6e/13/