gpt4 book ai didi

jquery - 使用 jquery 引用元素的最佳方式?

转载 作者:行者123 更新时间:2023-12-01 02:08:57 25 4
gpt4 key购买 nike

我想知道如何使用 jquery 保存对对象(this)的引用。我的意思是,例如,当我的用户单击其页面中的任何元素时,我将对象的引用发送到我的网络服务器,下次用户调用服务器时,我将保存的引用发送回浏览器,并执行其他操作就像 fadeIn() ...到目前为止,我已经尝试使用 JSON.stringify(this) 和 JSON.stringify($(this)),但两者似乎都不起作用。我还尝试保存元素 ID、类和类型,因此下次用户调用它们时我可以只使用选择器,但由于我想在任何网站上使用该脚本,因此使用选择器可能不是理想的选择。有没有办法获得对元素的准确引用并将其发送到服务器?

最佳答案

不,对 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

这是一个不依赖类/ID 的更简单版本:

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);

关于jquery - 使用 jquery 引用元素的最佳方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206958/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com