我用JavaScript填充了几个选项。对于其中一些,select选项是相同的,所以我考虑创建一个选项,然后填充所有相关的选择。
以下是我实际做的事情:
var option = document.createElement('option');
option.text = 'please select a journal';
option.value ='NULL';
try
{
selectSection.add(option, null); // standards compliant; doesn't work in IE
}
catch(ex)
{
selectSection.add(option); // IE only
}
var option = document.createElement('option');
option.text = 'please select a journal';
option.value ='NULL';
try
{
selectSpecialIssue.add(option, null); // standards compliant; doesn't work in IE
}
catch(ex)
{
selectSpecialIssue.add(option); // IE only
}
var option = document.createElement('option');
option.text = 'please select a journal';
option.value ='NULL';
try
{
selectVolume.add(option, null); // standards compliant; doesn't work in IE
}
catch(ex)
{
selectVolume.add(option); // IE only
}
.............ETC................
我试图只创建一个选项(选项相同),然后填充这些选项:
var option = document.createElement('option');
option.text = 'please select a journal';
option.value ='NULL';
try
{
selectSection.add(option, null);
selectSpecialIssue.add(option, null);
selectVolume.add(option, null);
}
catch(ex)
{
selectSection.add(option);
selectSpecialIssue.add(option);
selectVolume.add(option);
}
代码在这里更好,更容易理解,但问题是只有我的最后一个select(selectVolume)被填充,我不知道为什么。
答案 0 :(得分:1)
我认为这是因为你没有将新选项对象初始化。因此,您将元素附加到每个选择,但该选项只有一个对象,因此必须在其他选择中删除它。更好的方法是在函数内执行此操作:
function setOptionJournal(selection) {
var option = document.createElement('option');
option.text = 'please select a journal';
option.value ='NULL';
try
{
selection.add(option, null);
}
catch(ex)
{
selection.add(option);
}
}
setOptionJournal(selectSection);
setOptionJournal(selectSpecialIssue);
setOptionJournal(selectVolume);
答案 1 :(得分:1)
您可以将选项创建移至功能
function createOption(text, value) {
var option = document.createElement('option');
option.text = text;
option.value = value == null ? 'NULL' : value;
return option;
}
并为您编写代码
var selectSection = document.getElementById('selectSection');
var selectSpecialIssue = document.getElementById('selectSpecialIssue');
var selectVolume = document.getElementById('selectVolume');
var selectText ='please select a journal';
selectSection.add(createOption(selectText));
selectSpecialIssue.add(createOption(selectText));
selectVolume.add(createOption(selectText));
这将更加清洁