previousSibling 中间不要有回车等特殊字符<input id="c" class="g"></input><DIV id="b" class="g"> 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 alert(document.getElementById("a").previousSibling.id);//可以 alert(document.getElementById("c").previousSibling.id);//可以 alert(document.getElementById("b").previousSibling.id);//不可以 为什么啊,都有空格或回车什么的 就是挺奇怪的????为什么加了回车后,它把 回车符号,认为了一个 NODE ??下面的语句就可以得到 c alert(document.getElementById("b").previousSibling.previousSibling.id);但是对于都是<DIV></DIV> 的标签组,就没有问题呢??? 反正要用previousSibling我就觉得两个无素中间什么东西也没有才靠得住。 我的理解:回车也算是一个节点,至于<div>为什么可以,因为他本身就带有回车,所以他前面的节点可以找到,我想所有的节点都应该是这样, 通过nodeName可以显示你获取到对象的名称<HTML> <HEAD> <STYLE type="text/css"> .g{top:0px;}</style> </HEAD> <body> <form> <div id="d" class="g"></div> <input id="c" class="g"></input> <DIV id="b" class="g"> </DIV><DIV id="a" class="g"> </DIV> </form><script> alert(document.getElementById("b").previousSibling.nodeName);//为什么是undefined</script> </body> </HTML> 能不能这样解释:因为HTML 是 XML 文档的子集, XML 都是树型结构的文档,因为你的<INPUT>标记出现的位置破坏了树型结构,才导致该问题的出现,如果把<input> 放进<div> 中就不会又问题了。 jquery的blockUI插件来遮档frame post表单的问题 动态删除jquery.validator中的验证项目 一个非常简单的正则 javascript替换问题 object标签与div悬浮的问题,在线!!! 帮忙解决一个图片不能切换问题 文件上传输入框的问题 如何控制页面背景图片显示的时间? 怎么样判断字符串里可以有空格,但是不能有,?/():;'"|等呢? 问个问题,(对图片鼠标右键,“图片另存为”进行记录的问题) 屏蔽document onclick方法
alert(document.getElementById("c").previousSibling.id);//可以
alert(document.getElementById("b").previousSibling.id);//不可以
为什么啊,都有空格或回车什么的
为什么加了回车后,它把 回车符号,认为了一个 NODE ??
下面的语句就可以得到 c
alert(document.getElementById("b").previousSibling.previousSibling.id);但是对于都是<DIV></DIV> 的标签组,就没有问题呢???
<HTML>
<HEAD>
<STYLE type="text/css">
.g{top:0px;}
</style>
</HEAD>
<body> <form>
<div id="d" class="g"></div>
<input id="c" class="g"></input>
<DIV id="b" class="g">
</DIV>
<DIV id="a" class="g">
</DIV>
</form>
<script>
alert(document.getElementById("b").previousSibling.nodeName);//为什么是undefined
</script>
</body>
</HTML>
因为HTML 是 XML 文档的子集, XML 都是树型结构的文档,
因为你的<INPUT>标记出现的位置破坏了树型结构,才导致该问题的出现,
如果把<input> 放进<div> 中就不会又问题了。