none
怎么通过行对象得到表格对象 RRS feed

  • 问题

  • 比如说现在有个
    <table name="table1"><tr name="tr1"><td>helloworld</td></tr></table>
    document.getElementsByName('tr1')得到了tr对象
    我如何通过它得到table1对象

    • 已移动 Sheng Jiang 蒋晟 2009年9月17日 1:54 客户端脚本问题 (发件人:ASP.NET 与 AJAX)
    2009年9月17日 1:28

答案

  • 不是这个意思,我得到了行对象,我想通过行对象得到表格对象
    parentNode就是

    <script>
    alert(document.getElementsByName('tr1')[0].parentNode.parentNode.tagName)
    </script>

    【孟子E章】
    • 已标记为答案 m s 2009年9月17日 7:32
    2009年9月17日 2:18
    版主
  • 您好,请参考:
    //e为行对象 即上面提到的document.getElementsByName('tr1')[0] 或用 document.getElementById来获取
    function findTable(e) {
     if (e.tagName == "TABLE") {
       return e;
     } else if (e.tagName == "BODY") {
      return null;
     } else {
      return findTable(e.parentElement);
     }
    }
    • 已标记为答案 m s 2009年9月17日 8:13
    2009年9月17日 5:26

全部回复

  • <table id="Tb1" name="table1"><tr name="tr1"><td>helloworld</td></tr></table>
    document.getElementsByName('tr1');
    
    document.getElementById("Tb1");
    不知楼主是这个意思不

    不用羡慕----那,只是个传说!
    2009年9月17日 1:41
  • 你好document.getElementsByName获取后是个数组还要用document.getElementsByName('tr1').item(0)获得

    你可以用获得的这个tr对象通过parentNode属性获得其父节点即table
    Wenn ich dich hab’,gibt es nichts, was unerträglich ist.坚持不懈!http://hi.baidu.com/1987raymond
    2009年9月17日 1:41
    版主
  • 你好,我通过parentNode属性写了一句tr.parentNode.style.display='block';并不起作用(原来表格是隐藏的)
    2009年9月17日 1:52
  • 不是这个意思,我得到了行对象,我想通过行对象得到表格对象
    2009年9月17日 1:54
  • 不是这个意思,我得到了行对象,我想通过行对象得到表格对象
    parentNode就是

    <script>
    alert(document.getElementsByName('tr1')[0].parentNode.parentNode.tagName)
    </script>

    【孟子E章】
    • 已标记为答案 m s 2009年9月17日 7:32
    2009年9月17日 2:18
    版主
  • 您好,请参考:
    //e为行对象 即上面提到的document.getElementsByName('tr1')[0] 或用 document.getElementById来获取
    function findTable(e) {
     if (e.tagName == "TABLE") {
       return e;
     } else if (e.tagName == "BODY") {
      return null;
     } else {
      return findTable(e.parentElement);
     }
    }
    • 已标记为答案 m s 2009年9月17日 8:13
    2009年9月17日 5:26
  • 应该是tr对象的parentNode属性再parentNode属性获得其父节点即table
    2009年9月17日 7:33
  • 你好,为什么是两个parentNode呢
    tr的父对象不是table吗
    2009年9月17日 7:34
  • 我都已经帮您写出一个常用的函数调用了。居然被无视,真是打击回答的积极性。
    2009年9月17日 8:04
  • 你得方法很好,谢谢!

    2009年9月17日 8:13
  • 你得方法很好,谢谢!


    唉,不是针对您,这是一个积累的过程,因为好多次的回答,都被忽略,当然有的是答的有问题,可有的是答的挺好的。
    所以觉得不爽啦。今天刚好跳出来说了一句。毕竟答题者奉献了时间和精力,相信很多答题的人和我有同样的遭遇。所以我想这是一个沟通的氛围的事。前几天去微软国外的论坛逛了逛,觉得他们的氛围还真是不错,对有帮助的贴子都至少会投上一票(当然也有可能是我碰到了,说不定也有类似的问题)。唉,不说了。我想这也算是答题者的磨练吧。
    2009年9月17日 8:31
  • 这个怪我,没仔细研究你的代码,后来想想是有用的,当碰当你不知道会有几个父节点的时候很有用
    2009年9月17日 8:36
  • 这个怪我,没仔细研究你的代码,后来想想是有用的,当碰当你不知道会有几个父节点的时候很有用

    没事,没有怪您的意思,不说了,感情嘛,宣泄出来就好了,问题摆出来说清了就好。抱歉抱歉。感觉您好像刚好撞到我的枪口上了。
    我还是很感谢您后来的支持,今后多交流。
    2009年9月17日 8:48
  • 你得方法很好,谢谢!


    唉,不是针对您,这是一个积累的过程,因为好多次的回答,都被忽略,当然有的是答的有问题,可有的是答的挺好的。
    所以觉得不爽啦。今天刚好跳出来说了一句。毕竟答题者奉献了时间和精力,相信很多答题的人和我有同样的遭遇。所以我想这是一个沟通的氛围的事。前几天去微软国外的论坛逛了逛,觉得他们的氛围还真是不错,对有帮助的贴子都至少会投上一票(当然也有可能是我碰到了,说不定也有类似的问题)。唉,不说了。我想这也算是答题者的磨练吧。

    中国人和美国人方式有些不同 中国人对这个论坛不熟悉 比如投票在哪 呢 容易看出来吗?
    你有很多说的确实详细 可是太复杂了 谁愿意看那么复杂费精力啊  马云说过 天下都是懒人 才创造出这么方便工具 
    2009年9月17日 9:03
  • 你得方法很好,谢谢!


    唉,不是针对您,这是一个积累的过程,因为好多次的回答,都被忽略,当然有的是答的有问题,可有的是答的挺好的。
    所以觉得不爽啦。今天刚好跳出来说了一句。毕竟答题者奉献了时间和精力,相信很多答题的人和我有同样的遭遇。所以我想这是一个沟通的氛围的事。前几天去微软国外的论坛逛了逛,觉得他们的氛围还真是不错,对有帮助的贴子都至少会投上一票(当然也有可能是我碰到了,说不定也有类似的问题)。唉,不说了。我想这也算是答题者的磨练吧。

    中国人和美国人方式有些不同 中国人对这个论坛不熟悉 比如投票在哪 呢 容易看出来吗?
    你有很多说的确实详细 可是太复杂了 谁愿意看那么复杂费精力啊  马云说过 天下都是懒人 才创造出这么方便工具 

    我答题已很简化了,像本例,就一句注释和一个函数,如果答题像蒋老大那么简洁,又有人该说敷衍了。我都是尽量折中,您的很多答题不也要摘很多代码吗?

    马云所说的懒人是为了创建美好事务而不断上进的懒人,并不是什么都不做就想会有回报的懒人。复杂的总需要有人研究,才能创造出简单的东西。简单的背后就是复杂。有些人不愿造轮子,一直说既然有现成的轮子为什么还要造?如果是这个思想,我想国内也就不会有奇瑞汽车,也不会有自己的飞机。也永远不会有自己的第一款操作系统。这样我们就跟着别人跑吧,别人说什么就是什么,不觉得悲哀吗?

    提问的人首先对问题本身很感兴趣。既然别人提供了很多参考为何没有精力尝试呢?我想很多人还是会尝试的。尝试了就能发现更好更便捷的方法,就如我贴出的这个,可以变化一下,适应多个不同的元素查找,而不是每次都要写一大段代码。这才是懒人学说的精髓。
    2009年9月17日 9:30
  • 你的观念全是对的 这个世界上没有绝对的 提问者如果是学习研究的  你的方式是有效的 如果是为了工作 解决问题 懒得学习参考 你的方式可能是无效的 到最后才看你的解答 我知道马云说的意义 客户永远是对的 你可以这么想 现在Windows vista提供更个性化 用户体验更佳 你还会选择Windows98吗 当然不会的  世界上存在每个人的本能不同 如果有的人不是很聪明 不愿意研究那么复杂东西 也不想自己太累了  比如说我是个很聪明的人 我愿意研究复杂问题为乐 这是我的选择 我当然有很多时候给的解答复杂 因为我无法用语言表达 我不会太复杂语言 你要清楚 创造者懒人和使用者懒人根本是两类人 微软是创造者 如果Windows创造操作那么复杂的话 就没有价值的了 马云说的懒人是他的淘宝网使用方式 不想费脑使用只想用鼠标点击点击完成的懒人
    2009年9月17日 9:54
  • 我希望在中国创造者的懒人多一些!
    2009年9月17日 10:20