关于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。

« 上一篇 | 下一篇 »

发表评论

评论内容 (必填):