不能相信我被困在這! JS小提琴https://jsfiddle.net/27a8qypq/顯示國家按字母順序從3個區域複選框選項的任意組合中出現。 將來我會希望使用JS代碼中的指令來限制國家/地區列表的範圍。例如,即使勾選了所有3個複選框,我可能也希望代碼排除所有亞洲國家的出現,但保留顯示的其他國家/地區的字母順序。 我嘗試使用.filter()和.detach()和.remove(),如以前的帖子中所建議的,但我無法獲得任何工作。在排序前從複選框列表的一部分中排除項目
任何人都可以提出如何我可以添加一個小的修改JS代碼,所以我可以排除1或2區域的國家被顯示?理想情況下,我不想重構HTML。 謝謝
<label>
<input type="checkbox" name="colorCheckbox" id="Europe" />Europe</label>
<label>
<input type="checkbox" name="colorCheckbox" id="Africa" />Africa</label>
<label>
<input type="checkbox" name="colorCheckbox" id="Asia" />Asia</label>
<div class="mywrapper">
<label class="myEurope">
<input type="checkbox" value="Spain" />Spain</label>
<label class="myEurope">
<input type="checkbox" value="Germany" />Germany</label>
<label class="myEurope">
<input type="checkbox" value="Austria" />Austria</label>
<label class="myAfrica">
<input type="checkbox" value="Nigeria" />Nigeria</label>
<label class="myAfrica">
<input type="checkbox" value="Egypt" />Egypt</label>
<label class="myAfrica">
<input type="checkbox" value="Kenya" />Kenya</label>
<label class="myAsia">
<input type="checkbox" value="Thailand" />Thailand</label>
<label class="myAsia">
<input type="checkbox" value="China" />China</label>
<label class="myAsia">
<input type="checkbox" value="Japan" />Japan</label>
</div>
function sortByText(a, b) {
return $.trim($(a).text()) > $.trim($(b).text());
}
var li = $(".mywrapper").children("label").detach().sort(sortByText)
$(".mywrapper").append(li)
$('input[type="checkbox"]').click(function() {
$('.my' + $(this).attr("id")).slideToggle(200)
})
.mywrapper {
border: 1px solid blue;
height: 200px;
width: 300px;
border: 1px solid blue;
}
.myEurope {
display: none;
}
.myAfrica {
display: none;
}
.myAsia {
display: none;
}
對不起,我不夠清楚。我想要做的就是放棄整個地區,從而禁用其中的所有國家。我寧願不修改帶有禁用屬性的HTML。是否沒有修改jquery的方法,它在「.mywrapper」(starts var li = ...)中對列表進行排序,以便它可以排除「亞洲」。或者,是否有一個命令可以隱藏jquery最後一行的所有亞洲國家?謝謝 – Silverburch