我在这个网站上搜索了很多,得到了很多好的答案,这是我第一次需要问一个问题,因为我找不到答案。
我的脚本被注入到用户加载的页面中,因此这些页面可以是完全任意的结构。页面上总是有一些特殊的文本,我希望他们下次访问该页面时能够自动检索它们(这是一个实时值,所以我有点刮掉这个值)。
这些页面是如此随意,我能做到的唯一方法是让用户双击该值以“训练”脚本并检测事件和被双击的元素。这很好用,我可以检索我想要的值,并且我有一个元素的 jQuery 对象。
我想不通的是如何存储该元素(或更准确地说是它的选择器),以便下次他们进入页面时我可以检索数据,而无需他们双击它。
这是一个jsFiddle http://jsfiddle.net/troywray/YvSH9/,如果你双击红色文本,我想要的文本很容易检索。但是我可以存储什么以便以后能够重现选择器?
$('body').bind("dblclick", function(event){
var dblClickElement = $(event.target);
var specialText = dblClickElement.html();
alert("I picked up: " + specialText);
console.log(dblClickElement);
console.log("selector result:", $(dblClickElement).selector); // empty string
});
控制台说 dblClickElement 是一个对象 [span.abcde] 但它是萤火虫中的可点击对象。我想要的是字符串'span.abcde',所以我可以在将来使用它来选择。似乎没有等于 span.abcde 的 jquery 对象的属性
我以为我在这里找到了一些相关的东西:获取当前的 jQuery 选择器字符串?但它在这里不起作用(证明在小提琴中,我明白了为什么)。
我真的不想要关于解析内部/外部 html 以构建选择器字符串的建议 - 如果我必须这样做,那么毫无疑问我可以解决这个问题。
另外,我确实意识到,在许多情况下,选择器可能不会给我一个唯一的元素,但我可以处理。