
js取不到值的兩種情況
有時在使用 javascript 取 html 元素的值,發現總是取不到值,不知道原因,可能會很久都解決不了。用 javascript 取不到值常常有以下幾種情況。
1、javascript 放到了待取值元素的前面
當 javascript 放到了待取值元素的前面時,javascript 執行時,由于待取值的元素還沒有加裁,所以 javascirpt 找不到此元素,導致取不到值。實例如下:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>js取不到值的幾種情況</title>
<style type="text/css">
.content{
width:500px;
overflow:hidden;
border:1px solid #ddd;
}
.show{display:block;}
.hide{display:none;}
</style>
</head>
<body>
<div class="content">
<div id="test" class="hide"><a href="http://www.goforfri.com/">網頁打不開</a></div>
</div>
<script type="text/javascript" language="javascript">
function init(){
var obj = document.getElementById("test");
if(obj.className == "hide")
obj.className = "show";
alert(obj.innerHTML);
}
init();
</script>
</body>
</html>
實例中,如果把 init() 放到待取值的<div id="test" class="hide">前面,是無法取到值的,不過把 function init() 改為 window.onload = function(),無論放到前后都可以取到值,注意把執行 init() 去掉。
2、引用 js 文件不正確也取不到值
如果把上面源碼中的 javascript 代碼放到一個 js 文件中,像下面這樣引用也取不到值。
<script type="text/javascript" language="javascript" src="getval.js" />
必須這樣引用才行:
<script type="text/javascript" language="javascript" src="getval.js"></script>
也就是說,js 文件的引用不能像其它元素一樣用“/>”表示元素結束。如果加載時就要取 html 元素的值,引用 js 文件的語句也要放到 html 元素的后面,否則也取不到值。