这里是一个jfiddle:http://jsfiddle.net/qHSWK/247/和我找到的代码,但最初是由id。我有多个具有相同内容的下拉菜单,因此最好一次按名称进行操作。使用javascript并不是很好,但我认为它会以这种方式工作。这里有什么问题?
<form id="someform">
<select name="year"></select>
</form>
var myselect = document.getElementsByName("year"),
startYear = new Date().getFullYear()
count = 5;
(function(select, val, count) {
do {
select.add(new Option(val++, count--), null);
} while (count);
})(myselect, startYear, count);
最终有多个下拉:
var myselect = document.getElementsByName("year"),
startYear = new Date().getFullYear()
count = 45;
for (var n = 0; n<5;n++){
(function(select, val, count) {
do {
select.add(new Option(val--, count--), null);
} while (count);
})(myselect[n], startYear, count);
}
答案 0 :(得分:2)
getElementsByName返回NodeList,而不是单个元素。这就是为什么你需要将所需的索引“ [0] ”添加到循环内的“select”var中。这样:
select[0].add(new Option(val++, count--), null);
答案 1 :(得分:1)
将此应用于多个select
元素,如下例所示。
var myselect = document.querySelectorAll("[name=year],[name=year1],[name=year2]"),
startYear = new Date().getFullYear(),
count = 5;
for(i=0;i<myselect.length;i++) {
(function(select, val, count) {
do {
select.add(new Option(val++, count--), null);
} while (count);
})(myselect[i], startYear, count);
}
&#13;
<form id="someform">
<select name="year"></select>
<select name="year1"></select>
<select name="year2"></select>
</form>
&#13;