编程论坛's Archiver

不惑 发表于 2007-11-20 10:47

郁闷,innerHTML生成的二级菜单点击无法送数据出来.(已解决)

我用:<br>          document.getElementById(tdid).innerHTML+="&lt;div align='left' style='padding-left:10px;padding-right:6px;' id="+divid+"&gt;&lt;img src='../image/nochild.gif'&gt;&lt;a class='d' href='"+urrl+"'  onclick='return move();'&gt;&lt;font color='#FFFFFF'&gt; "+bbb[0]+"&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;";<br>的办法生成的二级菜单,这个getElementById(tdid)对象也是用innerHTML生成的.<br>用这个办法生成的第一级菜单可以送出正常的数据.<br>比如我要获取这个href用:event.srcElement.href可以获取.<br>但这个二级菜单就是上面的<br>我用event.srcElement.href,返回的是:undefined<br><br>说明:这个&lt;a href='"+urrl+"'  onclick='return move();'&gt;可以很好地生成.从点击它可以进入正常页面中可以看出<br>但我是用AJAX来实现无刷新更新页面的,所以我需要获取它的href用以从ajax中送出请求.<br>请教各位大虾们,有什么办法来获取它的href啊?帮帮我啊.[em09]
[align=right][color=#000066][此贴子已经被作者于2007-11-21 11:10:25编辑过][/color][/align]

不惑 发表于 2007-11-21 08:03

不会吧?没人会吗?[em09]

渚薰 发表于 2007-11-21 09:19

<P>&lt;a&gt;标签里面不要加font标签,字体颜色用&lt;a&gt;标签的CSS样式控制<BR>另外贴出一下相关的完整代码(HTML,js)</P>

不惑 发表于 2007-11-21 09:43

<P>晕啊,完整的,怕你没时间看啊<br>第一次玩这个AJAX,所以有点乱,特别是改来改去地,自己都乱了.<br><br>&lt;!--#include file="conn.asp"--&gt;<br>&lt;html&gt;</P>
<P>&lt;head&gt;<br>&lt;meta http-equiv="Content-Type" content="text/html; charset=gb2312"&gt;<br>&lt;meta name="GENERATOR" content="Microsoft FrontPage 5.0"&gt;<br>&lt;link rel="stylesheet" type="text/css" href="style.css"&gt;<br>&lt;style type="text/css"&gt;<br>&lt;!--<br>--&gt;<br>&lt;/style&gt;<br>&lt;/head&gt;<br>&lt;%<br>   const MaxPerPage=18<br>   dim totalPut   <br>   dim CurrentPage<br>   dim TotalPages<br>   dim i,j<br>   dim sql<br>   dim rs<br>   dim rstype<br>   dim typesql<br>   dim typeid,typename1<br>   if not isEmpty(request("typeid")) then<br>    typeid=request("typeid")<br>   else<br>    typeid=1<br>   end if<br>if not isempty(request("page")) then<br>      currentPage=cint(request("page"))<br>   else<br>      currentPage=1<br>   end if<br>%&gt;<br>&lt;script language="JavaScript"&gt;<br>var mrow,nn1,zk,n3,nn2,zk2,mrow2,n4<br>zk=0;<br>zk2=0;<br>nn1=0;<br>nn2=0;<br>n3=0;<br>n4=0;<br>mrow=0;<br>mrow2=0;<br>  var http_request=false;<br>  function send_request(url){<br>    http_request=false;<br>    if (window.XMLHttpRequest){<br>       http_request=new XMLHttpRequest();<br>       if(http_request.overrideMimeType){<br>           http_request.overrideMimeType("text/xml");<br>       }<br>    }else if(window.ActiveXObject){<br>        try{<br>           http_request=new ActiveXObject("Microsoft.XMlHTTP");<br>           }catch(e){<br>    }<br>  }<br>  if (!http_request){<br>     window.alert("不能创建XMLHttpRequest对象实例!");<br>     return false;<br>  }<br>  http_request.onreadystatechange=processRequest;<br>  http_request.open("GET",url,true);<br>  http_request.send(null);<br>}<br>  function processRequest(){<br>     if(http_request.readystate==4){<br>        if (http_request.status==200){<br>          if (http_request.responseText!=""){  //有请求内容<br>          abc = http_request.responseText.split("!");  //把请求内容送到abc<br>             if (nn2==0 ){ //如果是第一级运行以下<br>               n3=abc[0]  //这是返回的个数<br>               if (zk==1){ //如果已经展开先合上<br>                  for (n=1;n&lt;n3-0+1;n++){<br>                     cd.deleteRow(mrow-0);<br>                  }<br>                nn1=0;<br>                zk=0<br>               }else{ //这儿开始展开<br>        for (n=1;n&lt;n3-0+1;n++){<br>          bbb=abc[n].split(",");<br>          row=cd.insertRow(mrow-0);<br>          cell=row.insertCell(0);<br>          cell.align="left";<br>          urrl="kjfg.asp?newstype="+bbb[0]+"&amp;typeid="+bbb[2]+"&amp;n=1"<br>          if (bbb[1]&gt;0){//返回有下一级菜单的话<br><FONT color=#ff0000>             cell.innerHTML="&lt;div align='left' style='padding-left:10px;padding-right:6px;' id=div"+n+"&gt;&lt;img src='../image/plus.gif' onclick=extendType2("+n+","+bbb[2]+") style='cursor:hand' id='TypeImg"+bbb[2]+"'&gt;&lt;a class='d' href='"+urrl+"' onclick='return move();'&gt; "+bbb[0]+"&lt;/a&gt;&lt;/div&gt;";//这儿生成的是第二级菜单的主体,也就是那个document.getElementById(tdid).<br></FONT>          }else{//无下一级菜单的话<br>            cell.innerHTML="&lt;div align='left' style='padding-left:10px;padding-right:6px;'&gt;&lt;img src='../image/nochild.gif'&gt;&lt;a class='d' href='"+urrl+"' onclick='return move();'&gt; "+bbb[0]+"&lt;/a&gt;&lt;/div&gt;";<br>          }<br>        }<br>                zk=1<br>               }<br>             }else{  //这是第二级展开<br>        n4=abc[0]  //这是返回的个数<br>               if (mmm) {<br>        for (n=1;n&lt;n4-0+1;n++){//说明一下,减0只是为了转换一下n4的属性.因为它是字符,减0就成了数字了.不减0如果n4为1它会成为11的<br>                  divid="td"+mrow2<br>                  del=document.getElementById(divid).removeNode(true)<br>                }<br>                imgid="TypeImg"+nn2<br>                 //alert(imgid)<br>                document.getElementById(imgid).src = '../image/plus.gif';    //更改图标<br>                mmm=false<br>                nn2=0<br>               }else{<br>                imgid="TypeImg"+nn2<br>                 //alert(imgid)<br>                document.getElementById(imgid).src = '../image/nochild.gif';    //更改图标<br>        for (n=1;n&lt;n4-0+1;n++){<br>                  tdid="div"+mrow2<br>          bbb=abc[n].split(",");<br>                  divid="td"+mrow2<br>                  urrl="kjfg.asp?newstype="+bbb[0]+"&amp;typeid="+bbb[2]+"&amp;n=1"<br>                  //alert(urrl)<br>      <FONT color=#ff0000>    document.getElementById(tdid).innerHTML+="&lt;div align='left' style='padding-left:10px;padding-right:6px;'&gt;&lt;img src='../image/nochild.gif'&gt;&lt;a class='d' href='"+urrl+"'  onclick='return move();'  id="+divid+"&gt; "+bbb[0]+"&lt;/a&gt;&lt;/div&gt;";  //这儿展开的是第二级的菜单,可以很好地展开,并且联接正解,只要把move中的return false去了就能转到这个联接中.</FONT><br>                }<br>                zk2=1<br>             }}<br>          }else{<br>            alert("无此ID号!");<br>          }<br>        }else{<br>           alert("您所请求的页面有异常!");<br>        }<br>      }<br>   }<br>function extendType2(mm,nn) {//这第二级菜单的点击<br>  imgid="TypeImg"+nn2<br>  mrow2=mm  //获取行号<br>  nn2=nn    //获取ID号<br>  imgid="TypeImg"+nn2<br>  j=document.getElementById(imgid).src.indexOf("plus.gif")<br>  if(j&gt;0){<br>    mmm=false<br>    send_request('extend1.asp?id='+nn) //送出请求<br>  }else{<br>    mmm=true<br>    send_request('extend1.asp?id='+nn) //送出请求<br>  }<br>}</P>
<P>function extendType1(mm,nn) {//第一级菜单的点击<br>nn2=0<br>if (nn1!=nn){  //该次点击是否与上次相同,不同运行下面的<br>    if (nn1!=0){ //如果第一级已展开,那就先合上(为的是表格的序号不会)<br>        imgid="TypeImg"+nn1  //获取前缀图标位置<br>        document.getElementById(imgid).src = '../image/plus.gif';    //改变图标<br>        for (n=1;n&lt;n3-0+1;n++){  //循环删除添加的行<br>                   cd.deleteRow(mrow-0);<br>                }<br>                nn1=0;<br>                zk=0<br>    }<br>    nn1=nn   //项目标号<br>    mrow=mm  //表格行号<br>    imgid="TypeImg"+nn  //当然前缀图标位置<br>    document.getElementById(imgid).src = '../image/nochild.gif';    //更改图标<br>    send_request('extend1.asp?id='+nn)  //送出请求<br>}else{  //相同只运行以下的删除<br>    if (nn1!=0){<br>        imgid="TypeImg"+nn1<br>        document.getElementById(imgid).src = '../image/plus.gif';    <br>        for (n=1;n&lt;n3-0+1;n++){<br>                   cd.deleteRow(mrow-0);<br>                }<br>                nn1=0;<br>                zk=0<br>    }<br>}<br>}<br>function move() {<br><FONT color=#ff0000>alert(event.srcElement.name)//这儿如果是第二级菜单无法返回内容,第一级没问题</FONT><br>zhengshi2_obj0.location=event.srcElement.href //先偷懒,把它送到IFRAME,看以后再换<br>return false<br>}<br>&lt;/script&gt;<br>&lt;body leftmargin="2" topmargin="2"&gt;<br>&lt;div align="center" class="unnamed1"&gt;<br>&lt;center&gt;<br>    &lt;div align="center"&gt;<br>      &lt;center&gt;<br>    &lt;table width="774" border="0" cellpadding="0" cellspacing="0" height="9" style="border-collapse: collapse" bordercolor="#111111"&gt;<br>      &lt;tr&gt; <br>      &lt;/tr&gt;<br>    &lt;/table&gt;<br>      &lt;/center&gt;<br>    &lt;/div&gt;<br>    &lt;div align="center"&gt;<br>      &lt;center&gt;<br>&lt;!--#include file="bt.asp"--&gt;<br>    &lt;/div&gt;<br>    &lt;div id=d5 align="center" &gt;<br>    &lt;table width="774" border="0" cellpadding="0" cellspacing="0" height="1" style="border-collapse: collapse" bordercolor="#111111"&gt;<br>      &lt;tr&gt; <br>        &lt;td bgcolor="#7D8AC8" width="129" height="143" valign="top"&gt; <br>          &lt;div align="center"&gt;<br>            &lt;center&gt; <br>          &lt;table width="140" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111" height="91"&gt;<br>            &lt;tr&gt; <br>              &lt;td colspan="2" height="28" width="139"&gt;<br>                &lt;p align=center&gt;&lt;font face="宋体" style="font-size: 10pt" color="#FFFF00"&gt;&lt;a href=mymanage.asp&gt;税法栏目&lt;/a&gt; &lt;a href=mymanage2.asp&gt;会计法栏目&lt;/a&gt;&lt;/font&gt;&lt;/td&gt;<br>            &lt;/tr&gt;<br>            &lt;tr&gt; <br>              &lt;td colspan="2" height="2" width="139"&gt;&lt;/td&gt;<br>            &lt;/tr&gt;<br>            &lt;tr&gt; <br>              &lt;td height="61" width="130" valign="top"&gt; <br>                &lt;table width="137" border="0" cellpadding="0" cellspacing="0"&gt;<br>                  &lt;tr&gt; <br>                    &lt;td colspan="2" height="58" width="100%"&gt;<br>    &lt;table width=100% border="0" cellpadding="0" cellspacing="0" height="1" style="border-collapse: collapse" id="cd"&gt;<br>&lt;%<br>Set rst= Server.CreateObject("ADODB.Recordset")<br>    rst.open "select * from type2 where class=0",conn,1<br>if rst.EOF then<br>    response.write "没有栏目:("<br>    else<br>%&gt; &lt;%for n=1 to rst.recordcount%&gt;<br>&lt;tr&gt;&lt;td&gt;&lt;img src="../image/plus.gif" onclick="extendType1('&lt;%=n%&gt;','&lt;%=rst("typeid")%&gt;')" style="cursor:hand" id="TypeImg&lt;%=rst("typeid")%&gt;"&gt;&lt;a class="d" href="kjfg.asp?newstype=&lt;%=rst("type")%&gt;&amp;typeid=&lt;%=rst("typeid")%&gt;&amp;n=1" onclick="return move();"&gt;&lt;%=rst("type")%&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;<br>&lt;%<br>    rst.MoveNext<br>    next<br>    end if<br>rst.close<br>%&gt;&lt;/table&gt; &lt;/td&gt;<br>                  &lt;/tr&gt;<br>                &lt;/table&gt;<br>              &lt;/td&gt;<br>            &lt;/tr&gt;<br>          &lt;/table&gt;  <br>            &lt;/center&gt;<br>          &lt;/div&gt;<br>          &lt;table width="75%" border="0" align="center" cellpadding="0" cellspacing="0"&gt;<br>            &lt;tr&gt; <br>            &lt;/tr&gt;<br>          &lt;/table&gt;<br>        &lt;/td&gt;<br>        &lt;td bgcolor="#C4C4C4" width="1" height="143"&gt;&lt;/td&gt;<br>        &lt;td colspan="2" height="143" valign="top" align="right" width="608"&gt;<br>               &lt;IFRAME id=zhengshi2_obj0 <br>      src="kjfg.asp?newstype=会计法规&amp;typeid=0&amp;n=1" frameBorder=0 width=100% <br>      height=100%&gt;&lt;/IFRAME&gt;</P>
<P>        &lt;/td&gt;<br>      &lt;/tr&gt;<br>    &lt;/table&gt;<br>      &lt;/center&gt;<br>    &lt;/div&gt;<br>    &lt;div align="center"&gt;<br>      &lt;center&gt;<br>    &lt;table width="774" border="0" cellpadding="0" cellspacing="0" style="border-collapse: collapse" bordercolor="#111111"&gt;<br>      &lt;tr bgcolor="#304D7C"&gt; <br>        &lt;td width="777" bgcolor="#000080" class="unnamed1" height="1"&gt; <br>          &lt;div align="center"&gt; &lt;/div&gt;<br>        &lt;/td&gt;<br>        &lt;td width="1" valign="top" align="right" height="2"&gt;&lt;/td&gt;<br>      &lt;/tr&gt;<br>    &lt;/table&gt;<br>      &lt;/center&gt;<br>    &lt;/div&gt;<br>    &lt;script language="Javascript" src="copyright.txt"&gt;<br>              &lt;/script&gt;<br>  &lt;/center&gt;&lt;/div&gt;<br>&lt;/body&gt;<br>&lt;/html&gt;</P>
[align=right][color=#000066][此贴子已经被作者于2007-11-21 9:50:22编辑过][/color][/align]

不惑 发表于 2007-11-21 11:09

[em05]哈哈!<BR>我已经解决了!!!<BR>document.getElementById(tdid).innerHTML+="&lt;div align='left' style='padding-left:10px;padding-right:6px;' id="+divid+"&gt;&lt;img src='../image/nochild.gif'&gt;&lt;a class='d' href='"+urrl+"'  onclick='return move(this.href);'&gt;&lt;font color='#FFFFFF'&gt; "+bbb[0]+"&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;";<BR>就可以很好地把href送出来!

不惑 发表于 2007-11-21 11:11

还有,版主,我也不知道为什么,但在这儿,我的&lt;font&gt;是起作用的,所以我才用,要不起作用我才不会用呢.[em02]

渚薰 发表于 2007-11-21 14:03

&lt;font&gt;当然是起作用的……<BR>但是在ie下,onclick事件发生后,srcElement绑定的是&lt;font&gt;元素<BR>这个帖子可以清楚解释这个问题<BR><a href="http://www.javaeye.com/topic/141877" target="_blank" >http://www.javaeye.com/topic/141877</A>

不惑 发表于 2007-11-22 08:16

会有这样的事?我试试看.是不是这样的,先谢谢!

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.