我正在尝试清除<ul>
它的<li>
一部分孩子,然后是append()
新<li>
的 empty <ul>
。
我正在(尝试)为此使用 OOP JS,所以进一步启动代码的 jQuery 是这样的:
$('#nav li a').click(function() {
TutorGroupPoints.yearClick($(this).attr("id"));
});
该yearClick
函数中的部分代码为:
$('#nav ul').empty();
for (var i = 0; i < this.Sorted.length; i++) {
$('#nav ul').append('<li id="' + this.Sorted[i].id + '">' + this.Sorted[i].name + '</li>');
}
this.Sorted
是一个完全填充的项目数组。
HTML 如下所示:
<div id="nav">
<h2>Tutor Groups</h2>
<ul>
<li><a class="year" href="javascript:void(0);" title="Year 9" id="9">Year 9</a></li>
<li><a class="year" href="javascript:void(0);" title="Year 10" id="10">Year 10</a></li>
<li><a class="year" href="javascript:void(0);" title="Year 11" id="11">Year 11</a></li>
<li><a class="year" href="javascript:void(0);" title="Year 12" id="12">Year 12</a></li>
<li><a class="year" href="javascript:void(0);" title="Year 13" id="13">Year 13</a></li>
</ul>
</div>
当我单击其中一个#nav li
锚点时,它只会擦除<ul>
并且没有append()
任何新的<li>
. 但是,如果我注释掉empty
,新的 s 会正确地<li>
附加到现有的 s 上。<li>
难道我做错了什么?
编辑
我已经包含console.log
了函数,并且没有出现任何问题。
全文console.log
如下:
[
Object
id: "12117"
name: "11AB/Tp"
__proto__: Object
,
Object
id: "12118"
name: "11ABO/Tp"
__proto__: Object ,
Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object , Object
] compiler.php:32
<li id="12117">11AB/Tp</li> compiler.php:38
<li id="12118">11ABO/Tp</li> compiler.php:38
<li id="12119">11AN/Tp</li> compiler.php:38
<li id="12605">11DR/Tp</li> compiler.php:38
<li id="12626">11DST/Tp</li> compiler.php:38
<li id="12149">11JOR/Tp</li> compiler.php:38
<li id="12150">11LLU/Tp</li> compiler.php:38
<li id="12151">11MDA/Tp</li> compiler.php:38
<li id="12152">11ND/Tp</li> compiler.php:38
<li id="12153">11PD/Tp</li> compiler.php:38
<li id="12154">11RJ/Tp</li> compiler.php:38
<li id="12606">11SDI/Tp</li> compiler.php:38
<li id="12155">11ST/Tp</li> compiler.php:38
<li id="12607">11SW/Tp</li> compiler.php:38
<li id="12156">11VY/Tp</li>
完整的代码可以在这里找到。我最初没有包含它,因为它使用特定于 VLE 的 API 调用,如果您不熟悉它们,这往往会使事情变得混乱。
提前致谢,