2
我試圖簡單地確定數組中是否存在元素。基本上,我希望看看在另一個<select>
的<optgroup>
存在於<select>
控制選定的國家。想想國家和地區:使用jQuery.inArray查找數組中的項
<select id="countries">
<option value=""></option>
<option value="US">United States</option>
<option value="IL">Israel</option>
<option value="CA">Canada</option>
</select>
<select id="territories">
<option value=""></option>
<optgroup label="USA">
<option value="CA">California</option>
</optgroup>
<optgroup label="CA">
<option value="ON">Ontario</option>
</optgroup>
</select>
的jQuery:
// build array of available territories for counties
var territoryCountries = [];
$("select#territory optgroup").each(function() {
territoryCountries[territoryCountries.length] = $(this).attr('label');
});
// on change
$("select#country").change(function() {
if (!$.inArray($(this).val(), territoryCountries)) {
console.log("Not found, disable the territory input.");
} else {
console.log("Found, disable all unrelated territories.");
}
});
這個問題我有一點是它不起作用。它表明,'IL'確實存在於領土國家,如果沒有,並且表明'美國'在領土國家並不存在,那麼它就是這樣。
我在做什麼錯?您可以在JSFiddle查看並運行代碼。
- 此外,我只是想做一個國家/地區選擇輸入。有一個更好的方法嗎?我覺得我主要是在重新發明輪子來做手工。
出於某種原因,我使用'!== -1'而不是'=== -1'。固定。 – RightSaidFred