を使用するクラス名であると仮定すると、この
var parentID=$(".spanClassName").parent().attr("id");
を行うことができますまず、同じIDを持つ2つのオブジェクトを持つことはできません。したがって、id="Admin"
という2つのオブジェクトを持つことはできません。それぞれに異なるIDを付けるか、共通のクラス名(またはその両方)を使用する必要があります。だから、これまでそれを変更できます。
<div id="Window1" class="name">
<span id="Admin1" class="admin"></span>
</div>
<div id="Window2" class="name">
<span id="Admin2" class="admin"></span>
</div>
そして、その後、クリックを処理し、クリックされたオブジェクトの親のIDを取得するには、このjQueryのを使用します。
$(".admin").click(function() {
var parentId = $(this).parent().attr("id");
});
か、もう少し効率的に少しのjQueryを使用して:それはいくつかのHTMLの変更に対して少しより堅牢なので
$(".admin").click(function() {
var parentId = this.parentNode.id
});
私のお気に入りのオプションは、実際にこれをだろう(のような新しいコンテナのdivは、周りを導入した場合スパン):最初の2つのオプションで使用
$(".admin").click(function() {
var parentId = $(this).closest(".name").attr("id");
});
.parent()
または.parentNode
は、DOM hieararchyで、正確に1つ上のレベルに行きます。
.closest(".name")
は、渡されたセレクタに一致する親が見つかるまで、必要に応じて親階層に移動します。もう少し強力で、HTMLが少し変わったとしても、あなたが望む親を確実に得ることができるでしょう。必ずしも必要ではありませんが、知る価値があります。
IDは一意である必要があります。有効なHTMLを使用している必要があります。 –