我有一个国家/地区的选择菜单(我无法更改此服务器端)。根据之前的用户选择,已选择其中一个选项。
我还有一个国家/地区代码列表(也是生成的服务器端),它指定了应该出现在菜单中的国家/地区。 (大部分都应该删除。)
我已经提出了以下脚本,并且无法理解为什么它不起作用。我可以使用
禁用不需要的国家/地区 countrymenu.options[i].disabled = true;
但
countrymenu.remove[i];
(这是我需要的)什么都不做。
任何帮助都将不胜感激。
<html>
<head>
<script type="text/javascript">
function HideCountries()
{
countrymenu = document.checkoutform.country_code;
for (var i = 0; i < countrymenu.length; i++)
{
if (/^ASM|AIA$/.test(countrymenu.options[i].value)==false)
{
countrymenu.remove[i];
}
}
}
window.onload=HideCountries;
</script>
</head>
<body>
<form name="checkoutform">
<select name="country_code" id="country_code">
<option value="AFG">Afghanistan</option>
<option value="ALA">Åland Is.</option>
<option value="ALB">Albania</option>
<option value="DZA">Algeria</option>
<option value="ASM">American Samoa</option>
<option value="AND">Andorra</option>
<option value="AGO">Angola</option>
<option value="AIA">Anguilla</option>
<option value="ATA" selected="selected">Antarctica</option>
</select>
<input type="submit" />
</form>
</body>
</html>
答案 0 :(得分:0)
remove
是一个功能。用常规括号调用它。
countrymenu.remove(i);
remove[i]
尝试将该函数用作数组。这失败了,所以没有任何反应。此外,它可能会导致错误停止代码。
答案 1 :(得分:0)
虽然remove()
函数不正确,但您也应该按相反顺序删除项目,因为一旦删除了某个项目,索引就会被移动。
http://jsfiddle.net/MrPolywhirl/gPY3p/
function hideCountries() {
countrymenu = document.getElementsByName('country_code')[0]
for (var i = countrymenu.length-1; i >= 0; i--) {
if (/^ASM|AIA$/.test(countrymenu.options[i].value) == false) {
countrymenu.remove(i);
}
}
}
window.onload = hideCountries();
这应该只留下: