だから私は<ul>
それぞれIDを持つ2つのコンテナを持っています。それらの中には要素のリストがあり<li>
ます。
1つ目<ul>
は<ul id="coaches-list">
です。2番目は<ul id="players-list">
です。
<li>
それぞれの中にcloseというID(セレクターとして使用しているリンク)を持つタグがあり、<li>
クリックすると各ノードが削除されます。各コンテナをターゲット<ul>
にして、それがどこから来ているかを確認しようとしています。
私のHTMLは次のとおりです。
<!-- coaches box -->
<div class="box">
<div class="heading">
<h3 id="coaches-heading">Coaches</h3>
<a id="coaches" class="filter-align-right">clear all</a>
</div>
<ul id="coaches-list" class="list">
<li><span>Hue Jackson<a class="close"></a></span></li>
<li class="red"><span>Steve Mariuchi<a class="close"></a> </span></li>
</ul>
</div>
<!-- players box -->
<div class="box">
<div class="heading">
<h3 id="players-heading">Players</h3>
<a id="players" class="filter-align-right">clear all</a>
</div>
<ul id="players-list" class="list">
<li><span>Steve Young<a class="close"></a></span></li>
<li><span>Gary Plummer<a class="close"></a></span></li>
<li><span>Jerry Rice<a class="close"></a></span></li>
</ul>
</div>
jQueryのタグの削除機能は次のとおりです。
function removeSingleTag() {
$(".close").click(function() {
var $currentId = $(".close").closest("ul").attr("id");
alert($currentId);
// find the closest li element and remove it
$(this).closest("li").fadeOut("normal", function() {
$(this).remove();
return;
});
});
}
特定の各タグをクリックすると、クリックした適切なタグが削除されますが、$ currentIdにアラートを送信している場合は、次のようになります。
var $currentId = $(".close").closest("ul").attr("id");
<ul id="coaches-list" class="list"></ul>
との両方で閉じるセレクターをクリックすると、「coaches-list」に警告します。<ul id="players-list" class="list"></ul>
これを次のように変更した場合:
var $currentId = $(".close").parents("ul").attr("id");
上記と同じ動作ですが、代わりに「players-list」に警告します。
したがって、closest()を使用すると、最初の<ul>
IDが返されますが、parents()を使用すると、最後の<ul>
IDが返されます。
誰もがこの奇抜な行動で何が起こっているのか知っていますか?