這是我在SO的第一個問題。基本上,頁面上有大量元素,我想計算並顯示用戶單擊每個元素的次數。但爲此,我需要爲每個元素定義變量。 沒有更簡單的方法嗎?jQuery:計算數百個元素的點擊次數
對於一個元素:
var counter = 0;
$('.container').on("click", function(){
counter = counter+1;
$(this).find('.tag').html(counter);
});
這是我在SO的第一個問題。基本上,頁面上有大量元素,我想計算並顯示用戶單擊每個元素的次數。但爲此,我需要爲每個元素定義變量。 沒有更簡單的方法嗎?jQuery:計算數百個元素的點擊次數
對於一個元素:
var counter = 0;
$('.container').on("click", function(){
counter = counter+1;
$(this).find('.tag').html(counter);
});
您可以存儲data與每個元素計數次,每次被點擊數。
$(function(){
\t $('.container').click(function(){
if ($(this).data('count')) { // already been clicked
$(this).data('count', $(this).data('count') + 1); // add one
} else { // first click
$(this).data('count', 1); // initialize the count
}
$(this).html($(this).data('count')); // show it
});
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div class="container">container</div>
<div class="container">container</div>
<div class="container">container</div>
<div class="container">container</div>
<div class="container">container</div>
<div class="container">container</div>
對不起。但我似乎無法讓它工作。你能幫助創建一個小提琴嗎? – 2014-09-21 13:35:28
我添加了一個Stack Snippet,您可以從答案中正確運行。 – Scimonster 2014-09-21 13:39:00
謝謝!有用。 – 2014-09-21 13:42:08
嘗試設置類所有要算的元素。
var counter = 0;
$('.someClass').on("click", function(){
counter++;
$(this).find('.tag').html(counter);
});
每個元素都有不同的預先計算的類。 – 2014-09-21 13:14:26
您是否嘗試過使用類來對這些元素進行分組? – wei2912 2014-09-21 13:10:12
@ wei2912請詳細說明。 – 2014-09-21 13:10:55
最簡單的方法是直接在元素上放置一個數字屬性來保存它的數量。只要確保名稱避免衝突,如:'this .__ counter__ = this .__ counter__ + 1 || 1;' – 2014-09-21 13:14:13