我想知道如何保存對使用jquery的對象(this)的引用。我的意思是,例如,當我的用戶點擊他的頁面中的任何元素時,我想要將對象的引用發送到我的網絡服務器,並且下次用戶調用服務器時,我將保存的引用發送回瀏覽器,並執行其他操作像fadeIn()...到目前爲止我已經嘗試使用JSON.stringify(this)和JSON.stringify($(this)),但都似乎沒有工作。我也嘗試保存元素ID和類和類型,所以下次用戶調用它們時,我可以使用選擇器,但由於我想在任何網站上使用該腳本,因此可能不是使用選擇器的理想選擇。有沒有什麼辦法可以確切地引用元素並將其發送到服務器?用jQuery引用元素的最佳方式?
2
A
回答
7
不,到DOM元素的引用只有一個DOM實例(所以即使你重新加載在同一頁,參考文獻將不再工作)內工作。你將不得不使用選擇器。如果你確定頁面結構不改變,以獲得相同元素的最簡單的方法是這樣的:
// Get numeric index of element on page.
var index = $('*').index(this);
// Restore element.
var $this = $('*').eq(index);
您可以通過使用ID和班級在可能讓它從換頁更安全。
看一看這個腳本:http://paste.blixt.org/297640
這裏的它的簡化版本,不依賴於類/ IDS:
jQuery.fn.getPath = function() {
if (this.length != 1) throw 'Requires one element.';
var path, node = this;
while (node.length) {
var realNode = node[0], name = realNode.localName;
if (!name) break;
name = name.toLowerCase();
var parent = node.parent();
var siblings = parent.children(name);
if (siblings.length > 1) {
name += ':eq(' + siblings.index(realNode) + ')';
}
path = name + (path ? '>' + path : '');
node = parent;
}
return path;
};
像這樣來使用:
// Get selector for element.
var path = $(this).getPath();
// Get element using selector.
var $this = $(path);
1
雖然我不認爲有一種方法可以完全按照您的要求進行,但我會建議在您希望以這種方式保存的元素上放置一個ID。然後,您可以保存並稍後使用ajax從服務器檢索該ID。
你的選擇會是這個樣子:
var saveId = $(this).attr('id');
我不相信,這將在「任何網站」爲你指明工作,但如果你控制了現場,你可以確保所有你希望保存的元素有一個ID,並且在一個頁面上的所有ID必須是唯一的,你應該能夠實現這一點 - 在這個限制之內。
1
您可以保存selector
字段,以便日後可以選擇它。就像這樣:
var Elements = $('body').find('.container').find('div.controls'); // Just some complex selection
...
var ToSave = Elements.selector;
AJAXSave('Elements', ToSave);
// ToSave will be 'body .container div.controls' which is the elements we are talking about.
...
var LastElements = $(AJAXLoad('Elements'));
+0
這隻有當jQuery對象僅使用選擇器檢索時纔會有效。例如,'$(aDomElement)'的結果不會有有效的'.selector'屬性。 – Blixt 2010-02-05 12:10:01
相關問題
- 1. 使用jQuery獲取所有DOM元素的最佳方式
- 2. 最佳方式使用jQuery
- 3. 放大/展開元素的最佳方式:CSS或jQuery
- 4. 從數組中刪除元素的最佳方式:javascript/jquery
- 5. 使用jQuery添加DOM元素的最佳方法
- 6. 用javascript/jQuery操作dom元素屬性的最佳方法
- 7. 什麼是使用jquery mobile自定義元素的最佳方式
- 8. 最佳方式適用於同一元素
- 9. 在jQuery中切換元素風格的最佳和最快的方式?
- 10. Yii格式的html5表單元素的最佳方式
- 11. 什麼是使用引用刪除數組元素的最佳方法
- 12. 將元數據添加到HTML元素的最佳方式
- 13. 移動元素的最佳方式(性能方面)
- 14. 動態添加和刪除元素樣式的最佳方式
- 15. MVC模式:顯示元素數組的最佳方式
- 16. 縮放HTML元素的最佳方法
- 17. 檢查XML元素的最佳方法
- 18. sqlite3,按索引檢索行元素的最佳方法?
- 19. 什麼是爲元素的Z索引設計數據庫的最佳方式
- 20. 最佳方式使用Ajax
- 21. 最佳方式angularJS應用
- 22. 最佳方式爲用戶
- 23. 最佳方式使用Oracle
- 24. 最佳方式使用子
- 25. 最佳方式使用Magicalrecord
- 26. 最佳方式使用Perl
- 27. 最佳方式使用CFFI
- 28. 爲jQuery交互識別元素的最佳方法
- 29. 克隆表單元素的最佳方法jQuery Mobile?
- 30. 引用數組元素(jQuery)
是的,這是完美的...我曾在ids和eq很多,但我忘了我們可以設置上下文!哈哈這正是我想要的,謝謝:) – 2010-02-05 12:09:36