我用html做了一个表格,表格的特点如下:
表格的行代表一个对象,表格的列代表对象的某个属性;
表格第一列是用超链接表示的,表示对象的名称;
我想实现的效果是:点击名称那一列的某个超链接,获取超链接所在的那一行数据进行处理。我的想法是,点击超链接,获取到所在表格的行号,然后就可以对这一行每个单元格进行操作了。现在的问题是,该如何获取超链接所在的行号?
<script language="javascript"> <!-- function Alert(_this){ var objTR=_this.parentNode.parentNode alert("本行号= "+objTR.rowIndex) var obj=objTR.getElementsByTagName("td") for (var i=0;i<obj.length;i++) alert(obj[i].innerHTML) } //--> </script> <table border="1" width="37%"> <tr> <td width="63">name</td> <td width="68">x1</td> <td width="62">x2</td> <td width="75">x3</td> <td>x4</td> </tr> <tr> <td width="63"><a href=### οnclick="Alert(this)">name1</a></td> <td width="68">11</td> <td width="62">12</td> <td width="75">13</td> <td>14</td> </tr> <tr> <td width="63"><a href=### οnclick="Alert(this)">name2</a></td> <td width="68">21</td> <td width="62">22</td> <td width="75">23</td> <td>24</td> </tr> <tr> <td width="63"><a href=### οnclick="Alert(this)">name3</a></td> <td width="68">31</td> <td width="62">32</td> <td width="75">33</td> <td>34</td> </tr> <tr> <td width="63"><a href=### οnclick="Alert(this)">name4</a></td> <td width="68">41</td> <td width="62">42</td> <td width="75">43</td> <td>44</td> </tr> <tr> <td width="63"><a href=### οnclick="Alert(this)">name5</a></td> <td width="68">51</td> <td width="62">52</td> <td width="75">53</td> <td>54</td> </tr> <tr> <td width="63"><a href=### οnclick="Alert(this)">name6</a></td> <td width="68">61</td> <td width="62">62</td> <td width="75">63</td> <td>64</td> </tr> </table>
我的表格是用表格对象的insertRow和insertCell生成的,单元格里的超链接是用createElement(“A”)生成的,一是添加不了事件处理函数,添加了没有反应;二是通过别的方法添加了事件处理函数,函数执行时只打印this,显示为undefined,不知道什么原因?
<script language="javascript"> <!-- function Alert(_this){ alert(_this.innerHTML) } var _a=document.createElement("a") _a.innerHTML="test" _a.οnclick=function(){Alert(this)} document.body.appendChild(_a) //--> </script>