下面这段为什么不起作用?注意描红的地方

Zi_Yuan 2009-03-03 10:59:15
<tr>
<td bgcolor="#ccffcc">
<a onclick="javascript:showbm(document.getElementById("bm1b2"),document.getElementById("plus1b2"));" style="text-decoration: none; color: rgb(0, 0, 0);" href="#">
<img id="plus1b2" style="border: medium none ;" src="../evidence/icon/M3.gif"/>
</a>
银行存款
<input type="hidden" value="58" name="acc_id1b2"/>
</td>
<td bgcolor="#ccffcc">
<input id="qcs1b2" type="text" value="0" size="18" name="qcs1b2"/>
</td>
</tr>
<tr bgcolor="#ffffcc">
<td colspan="2">
<table id="bm1b2" width="100%" cellspacing="0" cellpadding="0" bordercolor="#000000" border="1" style="border-collapse: collapse;">
<col width="200"/>
<col width="150"/>
<tbody>
<tr>
<td>
</td>
<td>
</td>
</tr>
<tr bgcolor="#ffffff">
</tr>
<tr>
<td>
</td>
<td>
<input id="qcs1b2c2" type="text" onchange="javascript:alert(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.tagName);" value="0" size="18" name="qcs1b2c2"/>
</td>
</tr>
<tr bgcolor="#ffffff">
</tr>
<tr>
</tr>
<tr bgcolor="#ffffff">
</tr>
</tbody>
</table>
</td>
</tr>
...全文
142 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
Zi_Yuan 2009-03-06
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 JaggerLee 的回复:]
说了N遍了,你还是没明白


因为 W3C DOM 中空格或者换行被认为是一个文字节点
所以你写的 previousSibling 指向的就是

</tr>
<tr bgcolor="#ffffff">

这两句之间的"换行符"

所以你如果你有空格或者换行,必须这样子用
this.previousSibling..tagName
才可以,要不就别留空格或者换行
[/Quote]
</tr><tr bgcolor="#ffffff">
我已经这样写了,还是不行,其实输几个previousSibling是不一定的,很难把握,有时候需要输2个,有时候要输3个,即使中间没有空格或换行,在动态网页中就是这样,我把从客户端页面上截下来的html代码直接用浏览器显示,只有这样,要输几个previousSibling才有章可循
Zi_Yuan 2009-03-03
  • 打赏
  • 举报
回复
还是不行
kingya2008 2009-03-03
  • 打赏
  • 举报
回复
最后那个previousSibling去掉,问题所在
JaggerLee 2009-03-03
  • 打赏
  • 举报
回复
下面这样就没问题了,帅哥

<tr>
<td bgcolor="#ccffcc">
<a onclick="javascript:showbm(document.getElementById("bm1b2"),document.getElementById("plus1b2"));" style="text-decoration: none; color: rgb(0, 0, 0);" href="#">
<img id="plus1b2" style="border: medium none ;" src="../evidence/icon/M3.gif"/>
</a>
银行存款
<input type="hidden" value="58" name="acc_id1b2"/>
</td>
<td bgcolor="#ccffcc">
<input id="qcs1b2" type="text" value="0" size="18" name="qcs1b2"/>
</td>
</tr>
<tr bgcolor="#ffffcc">
<td colspan="2">
<table id="bm1b2" width="100%" cellspacing="0" cellpadding="0" bordercolor="#000000" border="1" style="border-collapse: collapse;">
<col width="200"/>
<col width="150"/>
<tbody>
<tr>
<td>
</td>
<td>
</td>
</tr><tr bgcolor="#ffffff">
</tr>
<tr>
<td>
</td>
<td>
<input id="qcs1b2c2" type="text" onchange="javascript:alert(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.tagName);" value="0" size="18" name="qcs1b2c2"/>
</td>
</tr>
<tr bgcolor="#ffffff">
</tr>
<tr>
</tr>
<tr bgcolor="#ffffff">
</tr>
</tbody>
</table>
</td>
</tr>
shujianlian 2009-03-03
  • 打赏
  • 举报
回复
onclick="javascript:showbm(document.getElementById("bm1b2"),document.getElementById("plus1b2"));"
onclick="javascript:showbm(document.getElementById('bm1b2'),document.getElementById('plus1b2'));"
单双引号问题。
Zi_Yuan 2009-03-03
  • 打赏
  • 举报
回复
两个tr中间有个<!--明细科目列表-->也会有影响吗?
Zi_Yuan 2009-03-03
  • 打赏
  • 举报
回复
我现在只是在测试,到时候肯定会调整格式
JaggerLee 2009-03-03
  • 打赏
  • 举报
回复
</tr>
<tr bgcolor="#ffffcc">

帅哥,这里不要换行就行了

因为 W3C DOM 中空格或者换行被认为是一个文字节点
所以你写的 previousSibling 指向的就是这个换行符
所以你如果你有空格或者换行,必须这样子用
this.previousSibling.previousSibling.tagName
才可以,要不就别留空格或者换行
soarcn 2009-03-03
  • 打赏
  • 举报
回复
建议如下:
1、不要直接写在onChange里面建议这样写:
onChange="show()"
<script language="JavaScript">
function show(0
{
alert(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.tagName);
}
</script>
Zi_Yuan 2009-03-03
  • 打赏
  • 举报
回复
onChange="alert(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.tagName);"
提示tr,但是再取得当前节点的前一个兄弟节点的tagName,提示却是undefined,应该是tr就对了,
我再把这段重抄一遍
<tr>/*this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling*/
<td bgcolor="#ccffcc">
<a onclick="javascript:showbm(document.getElementById("bm1b2"),document.getElementById("plus1b2"));" style="text-decoration: none; color: rgb(0, 0, 0);" href="#">
<img id="plus1b2" style="border: medium none ;" src="../evidence/icon/M3.gif"/>
</a>
银行存款
<input type="hidden" value="58" name="acc_id1b2"/>
</td>
<td bgcolor="#ccffcc">
<input id="qcs1b2" type="text" value="0" size="18" name="qcs1b2"/>
</td>
</tr>
<tr bgcolor="#ffffcc">/*this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.*/
<td colspan="2">
<table id="bm1b2" width="100%" cellspacing="0" cellpadding="0" bordercolor="#000000" border="1" style="border-collapse: collapse;">
<col width="200"/>
<col width="150"/>
<tbody>
<tr>
<td>
</td>
<td>
<input id="qcs1b2c2" type="text" onchange="javascript:alert(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.tagName);" value="0" size="18" name="qcs1b2c2"/>
</td>
</tr>
</tbody>
</table>
</td>
</tr>
这次应该清楚了吧?
sherry521 2009-03-03
  • 打赏
  • 举报
回复
onChange="alert(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.tagName);"
这一顿parentNode,指向哪去了?好乱呀
Zi_Yuan 2009-03-03
  • 打赏
  • 举报
回复
再补充一下,alert起作用,但是提示undefined,应该提示tr就对了
Zi_Yuan 2009-03-03
  • 打赏
  • 举报
回复
重新发一下,调整一下格式,再说明一下,alert为什么不起作用?

<tr>
<td bgcolor="#ccffcc">
<a onclick="javascript:showbm(document.getElementById("bm1b2"),document.getElementById("plus1b2"));" style="text-decoration: none; color: rgb(0, 0, 0);" href="#">
<img id="plus1b2" style="border: medium none ;" src="../evidence/icon/M3.gif"/>
</a>
银行存款
<input type="hidden" value="58" name="acc_id1b2"/>
</td>
<td bgcolor="#ccffcc">
<input id="qcs1b2" type="text" value="0" size="18" name="qcs1b2"/>
</td>
</tr>
<tr bgcolor="#ffffcc">
<td colspan="2">
<table id="bm1b2" width="100%" cellspacing="0" cellpadding="0" bordercolor="#000000" border="1" style="border-collapse: collapse;">
<col width="200"/>
<col width="150"/>
<tbody>
<tr>
<td>
</td>
<td>
</td>
</tr>
<tr bgcolor="#ffffff">
</tr>
<tr>
<td>
</td>
<td>
<input id="qcs1b2c2" type="text" onchange="javascript:alert(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.tagName);" value="0" size="18" name="qcs1b2c2"/>
</td>
</tr>
<tr bgcolor="#ffffff">
</tr>
<tr>
</tr>
<tr bgcolor="#ffffff">
</tr>
</tbody>
</table>
</td>
</tr>
jol_boy 2009-03-03
  • 打赏
  • 举报
回复
真晕,为什么在我机器上,就是alert出来的TR呢。。。。我米发现任何错误啊

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<HEAD>
<TITLE> New Document </TITLE>
<META NAME="Generator" CONTENT="EditPlus">
<META NAME="Author" CONTENT="">
<META NAME="Keywords" CONTENT="">
<META NAME="Description" CONTENT="">
</HEAD>

<BODY>
<table>
<tr>
<td bgcolor="#ccffcc">
<a onclick="javascript:showbm(document.getElementById('bm1b2'),document.getElementById('plus1b2'));" style="text-decoration: none; color: rgb(0, 0, 0);" href="#">
<img id="plus1b2" style="border: medium none ;" src="../evidence/icon/M3.gif"/>
</a>
银行存款
<input type="hidden" value="58" name="acc_id1b2"/>
</td>
<td bgcolor="#ccffcc">
<input id="qcs1b2" type="text" value="0" size="18" name="qcs1b2"/>
</td>
</tr>
<tr bgcolor="#ffffcc">
<td colspan="2">
<table id="bm1b2" width="100%" cellspacing="0" cellpadding="0" bordercolor="#000000" border="1" style="border-collapse: collapse;">
<col width="200"/>
<col width="150"/>
<tbody>
<tr>
<td>
</td>
<td>
</td>
</tr>
<tr bgcolor="#ffffff">
</tr>
<tr>
<td>
</td>
<td>
<input id="qcs1b2c2" type="text" onchange="javascript:alert(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.previousSibling.tagName);" value="0" size="18" name="qcs1b2c2"/>
</td>
</tr>
<tr bgcolor="#ffffff">
</tr>
<tr>
</tr>
<tr bgcolor="#ffffff">
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</BODY>
</HTML>

JaggerLee 2009-03-03
  • 打赏
  • 举报
回复
说了N遍了,你还是没明白


因为 W3C DOM 中空格或者换行被认为是一个文字节点
所以你写的 previousSibling 指向的就是

</tr>
<tr bgcolor="#ffffff">

这两句之间的"换行符"

所以你如果你有空格或者换行,必须这样子用
this.previousSibling.previousSibling.tagName
才可以,要不就别留空格或者换行
Zi_Yuan 2009-03-03
  • 打赏
  • 举报
回复
原来在动态网页中previousSibling要输两次才可以
Zi_Yuan 2009-03-03
  • 打赏
  • 举报
回复
这句没关系,我是从其他地方抄过来就抄的有了单双引号问题了,主要就是alert那句
Roc_Lee 2009-03-03
  • 打赏
  • 举报
回复

<a onclick="javascript:showbm(document.getElementById('bm1b2'),document.getElementById('plus1b2'));" style="text-decoration: none; color: rgb(0, 0, 0);" href="#">

87,907

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧