我不断收到错误"Uncaught TypeError: Cannot read property 'add' of null"
,该错误发生在select.add("HI!", 0);
行。我认为这是因为名称不匹配,这就是列表存在的原因,但这并没有解决问题。任何指导都很棒!
<script type="text/javascript">
for(i = 0; i < 10; i++){
var names = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
//window.alert(names[i])
document.write('<tr>');
document.write('<td>');
document.write('<select id=names[i]></select>');
var select = document.getElementById(names[i]);
select.add("HI!", 0);
document.write('</td>');
document.write('</tr>');
}
</script>
谢谢
答案 0 :(得分:2)
您不能只是将文本添加到选择中,您需要创建一个选项元素然后添加它。试试这个:
<script type="text/javascript">
for(i = 0; i < 10; i++){
var names = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10"]
//window.alert(names[i])
document.write('<tr>');
document.write('<td>');
document.write('<select id=' + names[i] + '></select>');
var select = document.getElementById(names[i]);
var option = document.createElement('option');
option.text = 'Hi';
select.add(option, i)
document.write('</td>');
document.write('</tr>');
}
</script>
答案 1 :(得分:1)
你的document.write('<select id=names[i]></select>');
会写出那个确切的字符串,而不是你想要的数组中的值。你可以尝试:
document.write('<select id=' + names[i] + '></select>');
如同isherwood并且您发现错误,您必须将option
或optiongroup
元素传递给add
方法才能生效。