所以我有 2 个<ul>
容器,每个容器都有 id。它们里面是一个<li>
元素列表。
第一个<ul>
是<ul id="coaches-list">
。第二个是<ul id="players-list">
。
每个标签<li>
中都有一个名为 close 的标签(这是我用作选择器的链接),<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>
”<ul id="players-list" class="list"></ul>
如果我将其更改为:
var $currentId = $(".close").parents("ul").attr("id");
它具有与上述相同的行为,但会提醒“玩家列表”。
因此,当使用最接近()时,它会返回第一个<ul>
id,但是当使用 parents() 时,它会返回最后一个<ul>
id。
有谁知道这种古怪的行为是怎么回事?