关于js中的转义字符与id

最近在整个一页面里有多棵树的东东,主体如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<
html>
     <
head>
     
     
     <
title>My JSP 'Treetest.jsp' starting page</title>
     
    <
meta http-equiv="pragma" content="no-cache">
    <
meta http-equiv="cache-control" content="no-cache">
    <
meta http-equiv="expires" content="0">     
    <
meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <
meta http-equiv="description" content="This is my page">
    <!--
    <
link rel="stylesheet" type="text/css" href="styles.css">
    -->
    <
link rel="StyleSheet" href="dtree.css" type="text/css" />
    <
script type="text/javascript" src="dtree.js"></script>
     </head>
     
     <body>
    <SCRIPT type=text/javascript>
function onTreeType()
{
    if(document.all('select').value==0)
    {
    T0.style.display="block";
    T1.style.display="none";
    which.style.display="";
    }
    if(document.all('select').value==1)
    {
    T0.style.display="none";
    T1.style.display="block";
    which.style.display="";
    }
}
</SCRIPT>


<SELECT onchange=onTreeType() size=1 name=select>
    <OPTION value=0 selected>第一个分类</OPTION>
    <OPTION value=1 >第二个分类</OPTION>
</SELECT>


<div id = T0 class="dtree">
<script type="text/javascript">
    d0 = new dTree('d0');
    d0.add(0,-1,'第一个分类');
    d0.add(1,0,'abc0','nulljavascript: parent.datefunc(\'abc0\',\'abc0\')');
    d0.add(2,1,'abc1','nulljavascript: parent.datefunc(\'abc1\',\'abc1\')');
    d0.add(3,2,'abc2','nulljavascript: parent.datefunc(\'abc2\',\'abc2\')');
    d0.add(4,3,'abc3','nulljavascript: parent.datefunc(\'abc3\',\'abc3\')');
    d0.add(5,4,'abc4','nulljavascript: parent.datefunc(\'abc4\',\'abc4\')');
    document.write(d0);
    d0.closeAll();
</script>
</div>
<div id = T1 class="dtree" style="display:none">
<script type="text/javascript">
    d1 = new dTree('d1');
    d1.add(0,-1,'第二个分类');
    d1.add(1,0,'abcm','nulljavascript: parent.datefunc(\'abc0\',\'abc0\')');
    d1.add(2,1,'abc1','nulljavascript: parent.datefunc(\'abc1\',\'abc1\')');
    d1.add(3,2,'abc2','nulljavascript: parent.datefunc(\'abc2\',\'abc2\')');
    d1.add(4,3,'abc3','nulljavascript: parent.datefunc(\'abc3\',\'abc3\')');
    d1.add(5,4,'abc4','nulljavascript: parent.datefunc(\'abc4\',\'abc4\')');
    document.write(d1);
    d1.closeAll();
</script>
</div>



     </body>
</html>

用dtree实现,起先的时候一直在两棵树的时候两棵都无法显示,后面发现是id冲突问题,即div的id和d0 = new dTree('d0');的d0这类变量名也不能重复,晕晕,整了两个多小时才发现。。

还有个就是转义字符了,如d1.add(5,4,'abc4','nulljavascript: parent.datefunc(\'abc4\',\'abc4\')');

其实就是在' '里的 ' 要用 \'  ,本来还好,不难理解,但是因为是用jsp生成树,在jsp里就变成了

"javascript: parent.datefunc(\\'abc4\\',\\'abc4\\')"

就是在jsp里转义的不是' 而是要向页面输出个\ 所以在jsp里应该是\\

终于搞定,HOHO。

« 上一篇 | 下一篇 »

5条记录访客评论

但是这样就达不到点击上级节点名就打开下级节点的目的了,请问有没有好办法?我正好也碰到这个问题!谢谢楼主

Post by 胡飞 on 2010, July 7, 2:38 PM 引用此文发表评论 #1

楼主如果在,或者有好办法了,请一定要留言告诉我,谢谢,我每天都回来看看。如果不能达到点击上级节点名也能打开下级节点,那也请给我个点击上级节点不能打开方法链接的方法!谢谢!

Post by 胡飞 on 2010, July 7, 3:24 PM 引用此文发表评论 #2

楼主,就不能上来帮忙解决下吗?

Post by 胡飞 on 2010, July 9, 2:33 PM 引用此文发表评论 #3

那个问题解决了,在function dtree(objName)方法中将folderLinks 属性改为false就可以了,哈哈这样文件夹就只能打开下级节点,不能打开连接了,呵呵!

Post by 胡飞 on 2010, July 13, 9:26 AM 引用此文发表评论 #4

sorry,这段时间一直没上。祝贺楼上解决问题

Post by ╰☆往事如风 on 2010, July 20, 10:56 AM 引用此文发表评论 #5


发表评论

评论内容 (必填):