黑马程序员技术交流社区
标题:
js获取节点的问题
[打印本页]
作者:
冯超
时间:
2013-3-23 20:20
标题:
js获取节点的问题
本帖最后由 冯超 于 2013-3-25 08:38 编辑
我们都知道获取几个节点的方法 如下:
1.document.getElementById();
2.document.getElementsByname();
3.document.getElementsByTagname();
问题如下(看代码):
<body>
<form action="post">
1:<input type="text" name="music" value="我们的爱">
2:<input type="text" name="music" value="恋爱ing">
3:<input type="text" name="music" value="只是回忆">
4:<input type="text" name="music" value="爱了,累了">
</form>
<h1 id="h1" name="test">
明天休息!
</h1>
<script type="text/javascript">
//1.利用firstchild输出明天休息
/* var h1Node = document.getElementById("h1");
var value = h1Node.firstChild.nodeValue; */
/* var h1Node = document.getElementsByTagName("h1");
alert(h1Node.nodeType + ":" + h1Node.length); */
var h1Node = document.getElementsByName("test");
</script>
</body>
复制代码
看过王威老师视频的人都知道,我想问的是什么,
就是用firstchild输出明天休息!
用Byid可以,但是其他两个就不行咯,不知道是什么原因。
作者:
王洪宇
时间:
2013-3-23 22:36
var h1Node = document.getElementsByTagName("h1");
var h1Node = document.getElementsByName("h1");
它们得到的都是数组吧。
试试这样用行不行:alert(h1Node[0].firstChild.nodeValue);
作者:
黄杨
时间:
2013-3-23 23:16
直接用alert(h1Node[0].innerHTML);输出不就完事了,呵呵
作者:
黄杨
时间:
2013-3-23 23:41
不过h1标签是没有name属性的,你这样使用有些浏览器直接报错
作者:
黄杨
时间:
2013-3-24 00:03
不好意思,刚才回答不完整
var h1Node1 = document.getElementsByTagName("h1");
alert( h1Node1[0].firstChild.nodeValue);
var h1Node2 = document.getElementsById("h1");
alert(h1Node2.firstChild.nodeValue);
上面2个都可以成功输出,使用getElementsByName来获取节点会出错是因为h1标签没有name属性的
作者:
冯超
时间:
2013-3-24 09:36
以前的回答我灰常感谢,其实发帖之后,我就发现了问题:
我在我的myeclipse中安装了Apama插件,就是写js可以自动提示的,我发现用另外两个(getElementByTagName,getElementsByName)获取结点并没有提示什么childNodes,firstChild,是我太依赖编译器了。。。。。。。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2