Я много ищу для этого сайта и у меня было много хороших ответов, это первый раз, когда мне нужно задать вопрос, потому что я просто не могу найти ответ.Хранить и отзывать селектор [jquery]
Мой скрипт вводится на страницы, загруженные пользователями, поэтому эти страницы могут быть полностью произвольной структурой. На странице всегда есть специальный текст, который я хочу получить автоматически при следующем посещении этой страницы (это живое значение, поэтому я как бы очищаю это значение).
Страницы настолько произвольны, что я могу сделать это только для того, чтобы пользователь дважды щелкнул по значению, чтобы «обучить» сценарий и определить событие и элемент, который был дважды щелкнул. Это отлично работает, я могу получить значение, которое я хочу, и у меня есть объект 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
});
Console говорит, что dblClickElement является объектом [span.abcde], но это интерактивный объект в поджигатель. То, что я хочу, это строка «span.abcde», поэтому я мог бы использовать ее для выбора в будущем. Кажется, что свойство jquery не имеет свойства объекта jQuery, равного span.abcde
Я думал, что нашел здесь что-то актуальное: Get the current jQuery selector string?, но он здесь не работает (доказательство находится в скрипке, и я понимаю, почему).
Мне не нужны предложения для разбора внутреннего/внешнего html, чтобы построить селекторную строку - если я должен это сделать, то, без сомнения, я могу понять это.
Кроме того, я понимаю, что во многих случаях селектор не может дать мне единственный уникальный элемент, но я могу справиться с этим.
Проблема заключается в том, что на одном узле может быть много селекторов. Вы не можете преобразовать узел в селектор, не пересекая дерево DOM и создавая селектор, который вам нравится. – Dogbert
Вы в порядке с DOM-traversal для создания селектора вручную или хотите избежать * all * traversale/HTML-манипуляции? –
@ Dogbert - спасибо - хорошая точка.Полагаю, я думаю, что в jsFiddle я * не сказал jQuery использовать span.abcde, но что-то решило, что это селектор, и tag.class будет хорошим селектором в этом случае. Я не должен был говорить, что у меня должен быть span.abcde. Мне просто нужен селектор, который вернет один или несколько элементов, в том числе тот, который я действительно хочу (я предполагаю, что могу получить массив элементов и определить, какой именно индекс я хочу, например $ ('span') [4] –