重新编辑: 我去了W3schools并在那里的javascript编辑器窗口玩,看看发生了什么。这是一个较短的脚本。
<html>
<body>
<script type="text/javascript">
var eType = document.getElementById("Type")
</script>
<select class="field select addr" id="Type">
<option value="Type:L" selected="selected">Location</option>
<option value="Type:C">Corporate</option>
<option value="Type:R">Remittama</option>
<option value="Type:M">Mailing</option>
</select>
<script type="text/javascript">
document.write(eType);
</script>
</body>
</html>
我做了ThiefMaster关于如何通过不使用.text或.value来获取元素的建议,但正如您所看到的,如果您运行此代码,我仍然会在此过程的这一步获得null。从我所看到的和许多建议我正确地做到这一点。我知道我一定错过了什么。有谁能看到它?
答案 0 :(得分:0)
你的第二个代码块几乎是正确的;您需要使用select元素本身而不是其(不存在的)值:
var elem = document.getElementById("Type");
var type = elem.options[elem.selectedIndex].value;
演示:http://jsfiddle.net/ThiefMaster/nw3nN/
如果您有jQuery可用,则可以大幅减少必要的代码量:
var type = $('#Type').val();
答案 1 :(得分:0)
在您将元素实际放在页面上之前,您正试图获取该元素。修复订单,不要使用document.write。
<html>
<body>
<select class="field select addr" id="Type">
<option value="Type:L" selected="selected">Location</option>
<option value="Type:C">Corporate</option>
<option value="Type:R">Remittama</option>
<option value="Type:M">Mailing</option>
</select>
<script type="text/javascript">
var eType = document.getElementById("Type")
document.body.appendChild(document.createTextNode(eType));
</script>
</body>
</html>