注册 登录
编程论坛 JavaScript论坛

firstChild运行为object?

H 发布于 2010-03-04 19:46, 706 次点击
程序代码:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www. <head>
        <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
        <title>Untitled Document</title>
    </head>

    <body>
      <p id="p1"><b>hello</b>world</p>
      <input type="button" value="use ranges" onclick="useRanges()">
      <table border="0">
          <tr>
              <td>
                  <fieldset>
                 
                    <legend>oRange1</legend>
                    startContainer:<input type="text" id="txtStartContainer1"><br/>
                    startoffset:<input type="text" id="txtStartOffset1"><br/>
                    endContainer:<input type="text" id="txtEndContainer1"><br/>
                    endoffset<input type="text" id="txtEndOffer1"><br/>
                    commonancestor:<input type="text" id="txtCommonAncestor1"><br/>
                                    </fieldset>
               
              </td>
          </tr>
      
      </table>
        </html>    <script>
var oP1=document.getElementById("p1");
var oHello=oP1.firstChild.firstChild.tagName;
alert(oHello);
    </script>

运行结果为什么是object?

[ 本帖最后由 H 于 2010-3-4 19:47 编辑 ]
5 回复
#2
foktime2010-03-05 09:03
var oHello=oP1.firstChild 第一个子元素 就是<b>了  再往下没了
改成
var oHello=oP1.firstChild.tagName;
看看
#3
H2010-03-05 15:51
回复 2楼 foktime
错误!你可以自己运行能成功否
#4
aspic2010-03-05 17:11
var oHello=oP1.firstChild.tagName;

这样是能运行OK的
他的说法也是对的
<p id="p1"><b>hello</b>world</p>
p1下面只有一个子节点何来firstChild.firstChild?
#5
aspic2010-03-05 17:14
或者应该这样说
<p id="p1"><b>hello</b>world</p>
firstChild.firstChild取到的是hello 文字也是一个节点
#6
aspic2010-03-05 17:15
文本节点是没有tagName的 你试试nodeName就知道了 应该是返回#text
1