A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 冯超 高级黑马   /  2013-3-23 20:20  /  1390 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 冯超 于 2013-3-25 08:38 编辑

我们都知道获取几个节点的方法 如下:
1.document.getElementById();
2.document.getElementsByname();
3.document.getElementsByTagname();
问题如下(看代码):
  1.   <body>
  2.                    <form action="post">
  3.                            1:<input type="text" name="music" value="我们的爱">

  4.                            2:<input type="text" name="music" value="恋爱ing">

  5.                            3:<input type="text" name="music" value="只是回忆">

  6.                            4:<input type="text" name="music" value="爱了,累了">

  7.                    </form>
  8.                    <h1 id="h1" name="test">
  9.                            明天休息!
  10.                    </h1>
  11.                   
  12.                    <script type="text/javascript">
  13.                            //1.利用firstchild输出明天休息
  14.                    /*        var h1Node = document.getElementById("h1");
  15.                            var value = h1Node.firstChild.nodeValue; */
  16.                            
  17.                    /*        var h1Node = document.getElementsByTagName("h1");
  18.                            alert(h1Node.nodeType + ":" + h1Node.length); */
  19.                            
  20.                            var h1Node = document.getElementsByName("test");
  21.                   
  22.                    </script>
  23.   </body>
复制代码
看过王威老师视频的人都知道,我想问的是什么,
就是用firstchild输出明天休息!
   用Byid可以,但是其他两个就不行咯,不知道是什么原因。

点评

如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-25 07:07
如果问题未解决,请继续追问回复者,如果问题已经解决,请将分类改为“已解决”,谢谢  发表于 2013-3-24 08:18

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

5 个回复

倒序浏览
var h1Node = document.getElementsByTagName("h1");
var h1Node = document.getElementsByName("h1");
它们得到的都是数组吧。
试试这样用行不行:alert(h1Node[0].firstChild.nodeValue);

评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
直接用alert(h1Node[0].innerHTML);输出不就完事了,呵呵
回复 使用道具 举报
不过h1标签是没有name属性的,你这样使用有些浏览器直接报错
回复 使用道具 举报
不好意思,刚才回答不完整

var h1Node1 = document.getElementsByTagName("h1");
alert( h1Node1[0].firstChild.nodeValue);

var h1Node2 = document.getElementsById("h1");
alert(h1Node2.firstChild.nodeValue);

上面2个都可以成功输出,使用getElementsByName来获取节点会出错是因为h1标签没有name属性的


评分

参与人数 1技术分 +1 收起 理由
黄玉昆 + 1

查看全部评分

回复 使用道具 举报
以前的回答我灰常感谢,其实发帖之后,我就发现了问题:
   我在我的myeclipse中安装了Apama插件,就是写js可以自动提示的,我发现用另外两个(getElementByTagName,getElementsByName)获取结点并没有提示什么childNodes,firstChild,是我太依赖编译器了。。。。。。。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马