使用Javascript的HTML下拉菜单
我正在尝试制作一个html下拉菜单,使用JavaScript,它使用一个循环插入从特定年份开始并在当前年份停止的选项。但是我失败了,下拉菜单出现了,但是里面没有任何东西使用Javascript的HTML下拉菜单,javascript,html,loops,Javascript,Html,Loops,我正在尝试制作一个html下拉菜单,使用JavaScript,它使用一个循环插入从特定年份开始并在当前年份停止的选项。但是我失败了,下拉菜单出现了,但是里面没有任何东西 <script language="JavaScript" type="text/javascript"> function Year() { var Year = 1986 var CurrentYear = new Dat
<script language="JavaScript" type="text/javascript">
function Year()
{
var Year = 1986
var CurrentYear = new Date().getFullYear()
while( Year < CurrentYear){
{
Year++;
document.write("<option>" + Year + "</option>");
}
}
功能年()
{
风险年=1986年
var CurrentYear=新日期().getFullYear()
而(年<当前年){
{
年份++;
文件。写(“+年+”);
}
}
这是HTML
<select id='ddYear'>
<option selected disabled hidden label="Select An Option">
<script language="JavaScript" type="text/javascript">
Year();
</script>
</select>
年份();
您可以在while循环中添加以下代码
Year++;
var select = document.getElementById("ddYear");
var option = document.createElement('option');
option.text = option.value = Year;
select.add(option, 0);
您有一个额外的卷发括号。我还建议您使用更好的命名:
function buildOptions() {
var year = 1986;
var currentYear = new Date().getFullYear();
while( year < currentYear) {
year++;
document.write("<option>" + year + "</option>");
}
}
函数buildOptions(){
var年=1986年;
var currentYear=新日期().getFullYear();
而(年<当前年){
年份++;
文件。写(“+年+”);
}
}
然后是HTML:
<select id='ddYear'>
<option selected disabled hidden label="Select An Option">
<script language="JavaScript" type="text/javascript">
buildOptions();
</script>
</select>
buildOptions();
考虑使用jQuery而不是纯javascript。这将使代码更易于阅读(即避免在选择代码中插入脚本元素,并允许您在运行时更新内容):
HTML
<select id='ddYear'>
<option selected disabled hidden label="Select An Option"></option>
</select>
Jquery
var startYear = 1986;
var currentYear = (new Date).getFullYear();
for(var year=startYear; year<currentYear; year++)
{
$('#ddYear').append($('<option/>', {
value: year,
text : year
}));
}
var startYear=1986;
var currentYear=(新日期).getFullYear();
就(var year=startYear;year而言,依我拙见,您的方法可能会好一点
首先,可以避免在html中使用脚本标记来调用函数,因为这可以直接在脚本中完成
在这个工作中,通过使用HTML和javascript,我们生成从1986年到2015年的日期,在您以前的脚本中,您不包括这些日期
我还为您添加了一个更改事件侦听器以供将来使用,因为您可能想知道选择下拉列表将在何时更改
小提琴:
你能给我们看一下你的HTML标记吗?
标记必须被包装在…
标记中,试着把它添加到你的代码中谢谢!我从来没有注意到这一点
<select id='ddYear'>
<option selected disabled hidden label="Select An Option">
</select>
var ddYear = document.getElementById('ddYear');
var y = 1986;
var currYear = new Date().getFullYear();
while ( y <= currYear ) {
var newOption = document.createElement('option');
newOption.text = newOption.value = y;
y++;
ddYear.add(newOption);
}
ddYear.addEventListener('change',function() {
alert(this.value);
});