web 頁面table 斜線效果 跨越多行和 多列

來源:互聯網
上載者:User

用代碼說話!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"></p><p><HTML xmlns:v="urn:schemas-microsoft-com:vml"><br /><head runat="server"><br /> <title>無標題頁</title><br /> <!--表格內畫線--><br /><SCRIPT language="javascript" src="JS/DrawLine.js" mce_src="JS/DrawLine.js" type="text/javascript"></SCRIPT><br /><STYLE> v/:* { BEHAVIOR: url(#default#VML) }</STYLE></p><p><!--表格內畫線onload="LookForTb(testTable,testDiv);--><br /></head><br /><body onload="LookForTb(testTable,testDiv); ><br /> <form id="form1" runat="server"></p><p> <DIV id="testDiv" style="Z-INDEX:200" mce_style="Z-INDEX:200"></DIV><br /> <TABLE id="testTable" border=1 bgcolor="000000" cellspacing="1" width=400 ><br /> <TR bgcolor="FFFFFF"><br /> <TD id="td1"> </TD><br /> <TD>張三</TD><br /> <TD>李四</TD><br /> <TD>王五</TD><br /> </TR><br /> <TR bgcolor="FFFFFF"><br /> <TD>數學</TD><br /> <TD>55</TD><br /> <TD>66</TD><br /> <TD>77</TD><br /> </TR><br /> <TR bgcolor="FFFFFF"><br /> <TD></TD><br /> <TD></TD><br /> <TD>68</TD><br /> <TD>71</TD><br /> </TR><br /> <TR bgcolor="FFFFFF"><br /> <TD> </TD><br /> <TD></TD><br /> <TD></TD><br /> <TD></TD><br /> </TR><br /> <TR bgcolor="FFFFFF"><br /> <TD> </TD><br /> <TD></TD><br /> <TD></TD><br /> <TD></TD><br /> </TR><br /> <TR bgcolor="FFFFFF"><br /> <TD> </TD><br /> <TD></TD><br /> <TD></TD><br /> <TD></TD><br /> </TR><br /> <TR bgcolor="FFFFFF"><br /> <TD>英語</TD><br /> <TD>99</TD><br /> <TD></TD><br /> <TD></TD><br /> </TR><br /> <TR bgcolor="FFFFFF"><br /> <TD>語文</TD><br /> <TD>33</TD><br /> <TD>44</TD><br /> <TD>55</TD><br /> </TR><br /> </TABLE> </p><p> </form><br /></body><br /></html><br /> //=============================<br />//頁面畫線<br />//table 為空白儲存格畫斜線<br />//輸入框,span 為空白,上加橫線<br />//autor:dy<br />//lastDate:20080522<br />//============================<br />String.prototype.trim = function()<br />{ </p><p>return this.replace(/(^/s*)|(/s*$)/g, "");<br />}</p><p>//table內畫線<br />//一般表格斜線<br />function LookForTb(table,divID){</p><p>for (var i=0; i < table.rows.length; i++)<br />{<br />for (var j=0; j < table.rows[i].cells.length; j++)<br />{<br />var obj = table.rows[i].cells[j];<br />var x,y,x1,y1;<br />var o = findLastRow(obj,table);<br />//alert('obj.innerText='+obj.innerText+'obj.innerText.trim()='+obj.innerText.trim())<br />if( tdIsNull(obj))<br />{</p><p>o=findLastRow(obj,table);<br />//記錄初始位置<br />x=obj.offsetLeft;<br />y=obj.offsetTop; </p><p>//記錄結束位置<br />x1=o.offsetLeft+o.offsetWidth;<br />y1=o.offsetTop+o.offsetHeight;</p><p>//跳過已畫線儲存格<br />if(o.cellIndex>obj.cellIndex)<br />{<br />j=o.cellIndex;<br />}</p><p>//跳過已畫線行<br />if(o.parentNode.rowIndex>obj.parentNode.rowIndex)<br />{<br />i=o.parentNode.rowIndex;<br />}</p><p>} </p><p>//畫線<br />varstr="<v:line id="+x1+y1+x+y+" from=/""+x+","+y+"/" to=/""+x1+","+y1+"/" Style="/" mce_Style="/""z-index:201; position:absolute; left:"+table.style.left+"; top:"+table.style.top+";/"></v:line>";<br />// alert(str);<br />var o=document.createElement(str);<br />divID.innerHTML += o.outerHTML;</p><p>}<br />}<br />}</p><p>//遞迴找到最後一個空列<br />function LookFortr(obj,table)<br />{<br />var o=obj;<br />var i=obj.parentNode.rowIndex;<br />var j=obj.cellIndex;<br />//alert(i+":"+j);<br />j++;</p><p>if(table.rows[i].cells[j] != null && table.rows[i].cells[j] != "undefined" )<br />{</p><p>if( tdIsNull(table.rows[i].cells[j]))<br />{<br />o=table.rows[i].cells[j];<br />o=LookFortr(o,table);<br />}<br />}<br />return o;<br />}</p><p>//找到最後一個空行<br />function findLastRow(obj,table)<br />{<br />var o=LookFortr(obj,table);<br />//判斷當前行是否空行<br />if(IsEmptyRow(o,table))<br />{<br />r=table.rows[o.parentNode.rowIndex+1];<br />if(r==null || r=='undefined')<br />{<br />return o;<br />}<br />o=table.rows[o.parentNode.rowIndex+1].cells[0];<br />if(o!=null && o!='undefined')<br />{<br />//判斷下一行是否空行<br />if(IsEmptyRow(o,table)) //下一行如果空行<br />{<br />//alert('bb');<br />o=findLastRow(o,table);</p><p>}<br />else //返回當前行最後列<br />{<br />//alert('aa');<br />o=LookFortr(obj,table);<br />}<br />}</p><p>}<br />return o;<br />}</p><p>//是否空行<br />function IsEmptyRow(obj,table)<br />{<br />var tmp="";<br />var tmpHTML="";<br />i=obj.parentNode.rowIndex;<br />for(j=0;j<table.rows[i].cells.length;j++)<br />{</p><p>if(table.rows[i].cells[j].tagName!="INPUT" && table.rows[i].cells[j].tagName != 'IMG' && table.rows[i].cells[j].tagName!="input" && table.rows[i].cells[j].tagName != 'img')<br />{<br />//alert('table.rows[i].cells[j].innerHTML='+table.rows[i].cells[j].innerHTML+'table.rows[i].cells[j].innerText='+table.rows[i].cells[j].innerText);<br />//alert(table.rows[i].cells[j].innerText);<br />try{<br />tmp+=table.rows[i].cells[j].innerText.trim().replace(" ","").replace(" ","");<br />tmpHTML+=table.rows[i].cells[j].innerHTML;<br />}<br />catch(e)<br />{<br />//alert(e.message);<br />}<br />}<br />else<br />{<br />return tdIsNull(table.rows[i].cells[j]);<br />}<br />}<br />//alert("tmp="+tmp+"!!!!!!!!!!!!!!!!!!");<br />//alert(tmpHTML);<br />if(tmp=="")<br />{<br />//alert('true');<br />return true;</p><p>}<br />else<br />{<br />//alert('false');<br />return false;</p><p>}<br />}</p><p>//判斷儲存格內控制項值是否為空白<br />function tdIsNull(o)<br />{<br />if(o.getElementsByTagName("img").length>0)<br />{<br />//alert(o.innerHTML);<br />return false;<br />}<br />if(o.getElementsByTagName("input").length>0)<br />{<br />var v="";<br />for(var i=0;i<o.all.length;i++)<br />{<br />if(o.all.item(i).tagName=="INPUT")<br />{<br />v+=o.all.item(i).value;<br />}<br />}<br />if(v.trim()=="")<br />{<br />return true;<br />}<br />else<br />{<br />return false;<br />}<br />}</p><p>else if(o.innerText.trim()=="")<br />{return true;}<br />return false;</p><p>} 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.