读书人

javascript中遇到的有关问题

发布时间: 2012-04-06 12:22:24 作者: rapoo

javascript中遇到的问题
通过nextSibling.nodeName来获得下一个标签的名称,但是失败了,找不出原因,望高手能帮忙解决,谢谢!
HTML文件
<html>
<head>
<title></title>
<script src="js/check.js"></script>
<style>
#main{
position:absolute;
top:50%;
left:50%;
margin:-150px 0 0 -200px;
width:400px;
height:300px;
border: #aaa solid 1px;
}
</style>
</head>
<body>
<form action="login.php" method=post>
<div id="main">
<table width="400px" height="250px" align="center">
<caption>用户注册</caption>
<tr>
<td width="100px">用户名:</td>
<td><input type="text" name="uid" value=""size="20"></td>
<td width="100px"> <span>请输入用户名</span></td>
</tr>
<tr>
<td>密码:</td>
<td><input type="password" name="pwd" size="20" value=""></td>
<td><span>请输入密码</span></td>
</tr>
<tr>
<td>确认密码:</td>
<td><input type="password" name="rpwd" size="20"></td>
<td><span>请再次输入密码</span></td>
</tr>
<tr>
<td>性别:</td>
<td><input type="radio" name="sex" value="male" checked>男  <input type="radio" name="sex" value="female">女</td>
<td></td>
</tr>
<tr>
<td>电子邮箱</td>
<td><input type="text" name="email"</td>
<td><span>请输入电子邮箱</span></td>
</tr>
<tr>
<td></td>
<td><input type="submit" name="sub" value="提交"></td>
</tr>
</table>
</div>
</form>
</body>
</html>
js文件
onload=function(){
var uid=document.getElementsByName("uid")[0];
var pwd=document.getElementsByName("pwd")[0];
var rpwd=document.getElementsByName("rpwd")[0];
var sex=document.getElementsByName("sex")[0];
var email=document.getElementsByName("email")[0];
alert(uid.nextSibling.nodeName);
}
谢谢,有点急!

[解决办法]
uid没有nextSibling了,所以你是找不到的啊

另外,nextSibling也可能是空格,等不可见字符,严格的查找方法是
while(xx.nextSibling.nodeType!=1)
xx=xx.nextSibling;

nextSibling代表是同级的、后面的兄弟节点
[解决办法]
使用jquery多省事
[解决办法]
span不是uid的nextSibling,

应该是

var uid=document.getElementsByName("uid")[0];
span=uid.parentNode.nextSibling.getElementsByTagName("span")[0]
------解决方案--------------------


不是告诉你uid没有nextSibling;了吗?你再while也不会有的啊,你要搞清楚nextSibling是什么意思
[解决办法]
下面是一个例子

<script>
function check()
{
var uid=document.getElementsByName("uid")[0];
var td = getNext(uid.parentNode)
var span = td.getElementsByTagName("SPAN")[0]
alert(span.innerHTML);
}

function getNext(o)
{
var x = o.nextSibling;
while(x.nodeType!=1) x=x.nextSibling
return x;
}
</script>

<input onclick="check()" type=button value="得到uid对应行的span">

读书人网 >JavaScript

热点推荐