2012-10-08 62 views
0

为什么我的代码不工作?它不应该打印222的元素ID p2无法使innerHTML正常工作?

<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> 
<%@page import="java.io.*" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> 
<title>Insert title here</title> 

<script type="text/javascript"> 
function compareData() 
{ 
document.getElementById('p1').innerHTML = "111"; 
var inputs = document.getElemementsByTagName("input"); 
// why can't I display the "222" here?? 
document.getElementById('p2').innerHTML = "222"; 
} 
</script> 
</head> 
<body> 
<p id="p1"> a </p> 

<p id="p2"> b </p> 
<input type="button" onclick="compareData()" value="hello"/> 
</body> 
</html>  

回答

2

你必须在这条线一个错字:

var inputs = document.getElemementsByTagName("input"); 

你想要什么大概是这样的:

var inputs = document.getElementsByTagName("input"); 

这可能是错字停止脚本的执行,并因此之后的线路从未运行。

3

为什么你使用这个? var inputs = document.getElemementsByTagName("input");

My fiddle

而且你可以使用你正在使用这样的方式:My fiddle但它不工作,因为元素的拼写是错误的document.getElemementsByTagName

应该document.getElementsByTagName

2

删除以下行,它将工作...

var inputs = document.getElemementsByTagName("input"); 
3

您拼写错误getElemementsByTagName。这会导致js错误,因此您的代码会停止在该行执行。
将其更正为getElementsByTagName。然后你的代码会正常工作。