もう 1 つの方法は、DOM ツリーをたどって要素へのパスを作成することです。これを保存して、後でセレクターとして再び使用できます。
編集:コメントであなたの提案で回答を更新しました。利用可能な場合はIDを返すようになりました
JSBinの例にアクセスして、 を 2 回クリックしてくださいdocument
。
しかし、強調表示されていることに注意してください..
jQuery.fn.getPath = function () {
if (this.length != 1) throw 'Requires one element.';
var path, node = this;
if (node[0].id) return "#" + node[0].id;
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;
};
var sel;
$(document)
.click(function (e, a) {
if (!sel) {
sel = $("#comment-21702402")
.getPath();
alert("Path is: " + sel + ", hiding the Element -> Click again to highlight");
} else {
$(sel)
.css("background-color", "yellow");
}
});