Jquery1.7.2を使用しています。Webページ上の任意のhtml要素をマウスクリックして以下のような出力を取得したい。
HTMLコードが:>であると仮定します
<div id ="mySDiv" class="FT">
<div class="product">
<a href="#">Try</a>
<a href="#">catch</a>
<a href="#">Throw</a>
</div>
</div>
アンカータグ「catch」のhtml要素をクリックしたときの上記のコードのこの出力は次のようになります
DIV#mySDIV.FT DIV.product A.eq(2)
以下まで出力できます
DIV#mySDIV.FT DIV.product
これまでの出力を実現するために記述されたコード
$(document).click(function (e) {
e.preventDefault();
var $parents = $(e.target).parentsUntil('[id]');
var tagNames = $parents.add($parents.parent())
.map(function () {
myCssSelector;
var tagId = $(this).attr("id"); ;
if (tag) {
myCssSelector = this.tagName + "#" + tagId;
var myClassName = $(this).attr("class");
if (myClassName) {
myCssSelector = myCssSelector + "." + myClassName;
}
else {
myCssSelector = myCssSelector + " ";
}
}
else {
myCssSelector = this.tagName;
var myClassName = $(this).attr("class");
if (myClassName) {
myCssSelector = myCssSelector + "." + myClassName;
}
else {
myCssSelector = myCssSelector + " ";
}
}
return myCssSelector;
}).get().join(',');
console.log(tagNames);
});
子を横断して、クリックされた要素の兄弟ノードを計算できません
私を助けてください