通过JavaScript设置列表框的元素
如何设置为我生成的listbox jsf的各个元素?我想通过JS设置它通过JavaScript设置列表框的元素,javascript,Javascript,如何设置为我生成的listbox jsf的各个元素?我想通过JS设置它 HTML generated: <select id="pageForm:effectiveDateListbox" name="pageForm:effectiveDateListbox" multiple="multiple" size="0"></select> var listBox = document.getElementById('pageForm:effectiveDateLi
HTML generated: <select id="pageForm:effectiveDateListbox" name="pageForm:effectiveDateListbox" multiple="multiple" size="0"></select>
var listBox = document.getElementById('pageForm:effectiveDateListbox');
for (i = 0; i!= length; i++)
{
var date = arrDates[i];
var displayMonth = date.getMonth() + 1;
var displayYear = date.getFullYear();
var displayDate = date.getDate();
tokenizedDates = displayMonth.toString(10) + "/" + displayDate.toString(10) + "/" + displayYear.toString(10);
listBox.options[i].value = tokenizedDates;
i++;
}
HTML生成:
var listBox=document.getElementById('pageForm:effectiveDateListbox');
for(i=0;i!=长度;i++)
{
var日期=截止日期[i];
var displayMonth=date.getMonth()+1;
var displayYear=date.getFullYear();
var displayDate=date.getDate();
tokenizedDates=displayMonth.toString(10)+“/”+displayDate.toString(10)+“/”+displayYear.toString(10);
选项[i].value=tokenizedDates;
i++;
}
循环中的长度应为arrDates.length
不要加倍增加i
使用var声明i和tokenizedDates,否则会污染全局命名空间
以下是执行dom操作的链接:
以下是如何使用jquery,因为dom操作很难让它们跨浏览器工作:
循环结束时不需要
i++
,因为循环本身会增加它。
var listBox = document.getElementById('pageForm:effectiveDateListbox');
var dates = [new Date(2013,01,01), new Date(2013,02,03), new Date(2013,03,03)];
for (i = 0; i != dates.length; i++) {
var option = document.createElement("option");
var optionText = [dates[i].getMonth() + 1, dates[i].getDate(), dates[i].getFullYear()];
option.text = optionText.join("/");
listBox.add(option, null);
}