-1

その子の<ul>ブロックをクリアしようとしていますが、空の.<li>append()<li><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>

アンカーの 1 つをクリックすると#nav li、単純に<ul>が消去され、append()新しい<li>. ただし、コメントアウトするemptyと、新しいs が既存の s に正しく<li>追加されます。<li>

私は何か間違ったことをしていますか?


編集

関数を含めましたがconsole.log、何も問題はありません。

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 呼び出しを使用しているため、最初は含めませんでした。これは、よく知らないと混乱する傾向があります。


前もって感謝します、

4

1 に答える 1

0

実際のコードと実際の HTML を表示したので、次のことを行っていることがわかります。

$('#nav').empty();

そして、次に追加しようとしています:

$('#nav ul')

しかし、 が.empty()削除されたulため、$('#nav ul')は空の jQuery オブジェクト (ページで何も見つからない) になり、追加しようとしても何もしません。.empty()これは、行を削除すると機能する理由も説明しています.append()

変化する:

$('#nav').empty();

に:

$('#nav ul').empty();
于 2012-08-14T13:04:30.363 に答える