如何将这个月和下个月添加到“select”选项中?列表与javascript
How can I add this and next month to a <select> list with javascript?
这是我尝试过的,但不起作用:
<select name="mois" id="mois">
<option value="" selected="selected">...</option>
<script type="text/javascript">
<!--//
var d=new Date();
var month=new Array(12);
month[0]="Janvier";
month[1]="Février";
month[2]="Mars";
month[3]="Avril";
month[4]="Mai";
month[5]="Juin";
month[6]="Juillet";
month[7]="Aout";
month[8]="Septembre";
month[9]="Octobre";
month[10]="Novembre";
month[11]="Décembre";
document.write('<option value="'+(d.getMonth()+1)+'">'+month[d.getMonth()]+'</option>');
//-->
</script>
</select>
- 不要使用
document.write
- 不要用HTML注释"隐藏"你的JavaScript。
-
使用数组字面值代替
new Array(12)
:var months = [ 'Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aout', 'Septembre', 'Octobre', 'Novembre', 'Décembre' ];
-
确保,当检查
d.getMonth
时,如果当前月份是一年的最后一个月(就像现在一样),则循环回到开始:var d = new Date(), lastMonth = months.length - 1, thisMonth = d.getMonth(), nextMonth = thisMonth === lastMonth ? 0 : thisMonth + 1;
-
一旦您知道了下个月的索引,您就可以选择如何构建新的
<option>
元素并将其添加到下拉列表中:-
使用
createElement
和appendChild
DOM方法var opt = document.createElement('option'), optTxt = document.createTextNode(months[nextMonth]); opt.appendChild(optTxt); document.getElementById('mois').appendChild(opt);
-
只需使用
innerHTML
做同样的事情。对于开发人员来说更容易一些,但innerHTML
可能无法在Mobile Safari上工作。此外,如果你有事件监听器或任何其他JS的东西在你的下拉菜单中的其他选项,这些将丢失。document.getElementById('mois').innerHTML += '<option>' + months[nextMonth] + '</option>';
-
使用
insertAdjacentHTML
获得innerHTML
的易用性,但不必丢弃和重建下拉菜单的整个DOM。(但是,您需要一个shim才能使insertAdjacentHTML
与旧版本的Firefox一起工作。)document.getElementById('mois').insertAdjacentHTML('beforeend', '<option>' + months[nextMonth] + '</option>');
-
您可以通过使用.setMonth()
并将1
添加到本月来获得下一个月的数据。您可以使用new Option( text, value )
语法简洁地添加<options>
,然后使用.add()
;
<select>
中。演示:http://jsfiddle.net/ThinkingStiff/UmwKy/
HTML:<select name="mois" id="mois"></select>
脚本:
var month = [
"Janvier","Février","Mars","Avril","Mai","Juin",
"Juillet","Aout","Septembre","Octobre","Novembre","Décembre"
],
now = new Date(),
mois = document.getElementById( 'mois' );
mois.add( new Option( month[now.getMonth()], now.getMonth() ) );
now.setMonth( now.getMonth() + 1 );
mois.add( new Option( month[now.getMonth()], now.getMonth() ) );
相关文章:
- 使用js将动态内容添加到选择选项列表中
- 如何使用jQuery隐藏与选择选项相关的选择选项列表
- 从ng选项列表中预选选项
- 正在从开发人员工具中的select元素打印选项列表
- HTML选择:将默认值设置为给定值,而不是从选项列表中选择
- 将过滤器添加到Angular中的选择框选项列表中
- 保留选项列表以供选择
- 在节点中实现依赖选项列表.js + express
- 在视觉效果页面中禁用从属选项列表
- 使用表排序器筛选所选选项列表中的选定项目
- jQuery 在选项列表中重新填充所选项目
- 使用 JavaScript 创建巨大的选项列表与以标记形式交付它们
- 使用 jQuery 或 Javascript 自动更新选择选项列表
- 如何在 JSHint 中设置选项列表
- Jquery函数将选项列表拆分为分层选择
- 重建选项列表时失去选择选项的焦点
- 使用javascript的表单中的两个下拉选项列表
- 如何在 Javascript 中删除多选选项列表中的重复值
- jQuery Mobile,在选项列表中选择所有项目
- 如何使ng选择's选项列表用当前的“;选择“;属性