什麼是在jQuery .data()
對象中遞增值的最佳方式?jQuery .data():可能增加(++或 - )?
20
A
回答
23
這看起來有點奇怪,但根據.data()
返回所有數據字段作爲一個對象,這樣你就可以直接更改其值的文檔:
$('#id').data('counter', 0);
上述兩種情況:
$('#id').data().counter++;
$('#id').data()['counter'] += 5;
檢索數據返回預期值。
alert($('#id').data('counter')); // 6
2
我想你一定要讀值,並將其寫回,所以:
$(element).data('yourKey', $(element).data('yourKey') + 1);
畢竟,data()
是一個函數調用,並增加其結果不會修改本身的價值,它坐落在一個內部的jQuery數據結構。
4
var data = parseInt ($.data("data-attr")) + 1;
$.data("data-attr",data);
8
或者,如果你控制你存儲什麼,存儲對象的引用,因此您可以直接使用++
修改對象的值:
var $elem = $('<div>');
$elem.data('something', {value:1});
$elem.data('something').value++;
console.log($elem.data('something').value); // 2
+0
謝謝!雖然我的方式適用於這種特殊情況,但您的做法更多的是JavaScripty方式,並且是一般情況下的正確答案。如果保留引用,則可能會更短:'var v = {value:1}; $ elem.data('something',v); /*...*/ v.value ++;' – Kobi 2010-05-16 04:35:41
0
這是爲增加變量一樣簡單,只是存儲。數據()值,增加它和它存回
假設您在NumbeR數據變量中設置了一個數字。
var myNumber = $(selector).data('NumbeR');
$(selector).data('NumbeR', myNumber++)
相關問題
- 1. 在jQuery中增加/減少.data()
- 2. 如何增加或使用jQuery
- 3. Angularjs routeProvider增加*?*或%3F可選參數
- 4. 增加的jQuery
- 5. 是否有可能增加CloudFlare超時?
- 6. 選擇 - 可能性增加PHP擴展
- 7. MySQL最大行長 - 可能增加?
- 8. 添加jQuery .data()與添加data-xxx屬性到你的元素
- 9. 如何增加牽引或JavaScript或jQuery的
- 10. multipart/form-data可能用javascript發送?
- 11. Data- * attr不能與jQuery一起工作
- 12. 什麼可能導致for循環不增加,然後增加2?
- 13. jQuery的 - 增加可編輯和可拖動的元素
- 14. applicationIconBadgeNumber不更新或增加
- 15. jquery .data在螢火蟲中不可見?
- 16. /data/data總是可寫嗎?
- 17. jQuery的:可能會或可能不會包含一個鏈接
- 18. 增加div id與jquery
- 19. 增加延遲/ jQuery的
- 20. JS/jQuery數量增加
- 21. jQuery的增加計數器
- 22. jQuery的增加不確定
- 23. jquery data()vs cookies
- 24. 替代jQuery .data()?
- 25. jquery .data()方法
- 26. jquery - each和data()
- 27. Coffeescript jQuery set data()
- 28. jQuery .data()與.html()
- 29. Android中的concatinated data-SMS可能嗎?
- 30. CSS顯示性能增益:無或$ .remove()?
+1 Nice catch !! – Reigel 2010-04-22 08:12:46
由於性能,您應該避免兩次調用數據,因此請使用以下代碼:http://stackoverflow.com/a/5656660/318765 – mgutt 2012-08-14 06:49:55