我嵌套了無序列表,列表項與它的標題看起來像這樣。複選框不確定狀態邏輯
<ul>
<li><input type="checkbox" /> Header 1</li>
<ul>
<li><input type="checkbox" value="1" />Item 1</li>
</ul>
<li><input type="checkbox" /> Header 2</li>
<ul>
<li><input type="checkbox" value="1" />Item 1</li>
<li><input type="checkbox" value="2" />Item 2</li>
<li><input type="checkbox" value="3" />Item 3</li>
<li><input type="checkbox" value="4" />Item 4</li>
</ul>
<li><input type="checkbox" /> Header 3</li>
<ul>
<li><input type="checkbox" value="5" />Item 5</li>
<li><input type="checkbox" value="6" />Item 6</li>
<li><input type="checkbox" value="7" />Item 7</li>
<li><input type="checkbox" value="8" />Item 8</li>
<li><input type="checkbox" value="9" />Item 9</li>
<li><input type="checkbox" value="10" />Item 10</li>
<li><input type="checkbox" value="11" />Item 11</li>
<li><input type="checkbox" value="12" />Item 12</li>
<li><input type="checkbox" value="13" />Item 13</li>
<li><input type="checkbox" value="14" />Item 14</li>
<li><input type="checkbox" value="15" />Item 15</li>
<li><input type="checkbox" value="16" />Item 16</li>
</ul>
</ul>
請注意,項目1存在於標題1的列表和標題2的列表中。
我試圖完成一些事情。
- 當我點擊的標題項,它會自動選擇或取消選擇所有列表項
li
內它的ul
列表緊隨其後。 - 當我點擊一個嵌套的
ul
內的列表項li
我想檢查是否所有其他項目都檢查(在這種情況下,在標題列表項上放置一個複選標記),或未選中(在這種情況下,刪除標題列表項目中的複選標記),如果它是已選中和未選中的混合,則將標題列表項目設置爲不確定狀態。 - 當我檢查一個列表項目,比如列表項目1出現在標題1的列表和標題2的列表中時,我希望它取消選中兩個項目,或者檢查兩個列表中的兩個項目,並導致簽入要求二在受影響的名單上進行。
我真的很難做到這一點,因爲我並不是那麼擅長JavaScript,而且我迄今讀過的所有代碼並不真正接近我所需要的。
任何幫助,將不勝感激。我使用的是jQuery 1.9.1,但是如果你想用它來做這件事,那麼JavaScript也不錯(因爲在谷歌開發工具中設置一個制動點來查看發生了什麼時,它更容易遵循)。
完整的例子可以我們添加CSS類到標題裏,幫助更容易地選擇DOM! – rab 2013-03-05 12:11:15