To net_lover(孟子E章):
    能不能给一点解释,我的javascript实在不够熟练。谢谢!

解决方案 »

  1.   

    function searchTagWithName(objRoot,strName)
    {
      Result = null;
      for (i=0; i<objRoot.length; i++)
      {
        if (objRoot[i].name==strName)
        {
          Result = obj[i];
          break;
        }
        else
        {
          if (Result=searchTagWithName(objRoot[i],strName)) break;
        }
      }
      return Result;
    }
      

  2.   


    <TABLE id="moonpiazza" border="1">
    <TR>
    <TD>dsfds</TD>
    <TD>dsf</TD>
    </TR>
    <TR>
    <TD>dsfds</TD>
    <TD>
    <TABLE border="1">
    <TR>
    <TD><span>123</span></TD>
    </TR>
    </TABLE>
    </TD>
    </TR>
    <TR>
    <TD>dsfds</TD>
    <TD><span>456</span></TD>
    </TR>
    </TABLE>
    <INPUT TYPE="text" NAME="tagName" Id="tagName" value="span">
    <INPUT TYPE="button" value="test" onclick="Test()">
    <SCRIPT LANGUAGE="JavaScript">
    <!--
    function searchTagWithName(objRoot,strName)
    {
    var oItem = objRoot.getElementsByTagName(strName) ;
    var n = oItem.length ;
    if (n > 0) 
    {
    return oItem[0];
    }
    else
    {
    return null;
    }
    }
    function Test()
    {
    var sStr
    var strName = tagName.value ;
    if (strName == "") 
    strName = "span";
    var oSrc = searchTagWithName(moonpiazza,strName);
    if (oSrc == null)
    {
    sStr = "tagName:" + strName + " is null!"
    }
    else
    {
    sStr = "tagName:" + strName + "\n" ;
    sStr += "innerHTML:" + oSrc.innerHTML ;
    }
    alert(sStr);
    }//-->
    </SCRIPT>
    :_)
      

  3.   

    nhconch(海风轻拂——深海螺号,遇水重生)和moonpiazza(月下小生) ( )的函数我都试过了,我这边的返回值始终是null。我的html可以看成类似这样:
    <TABLE id="moonpiazza" border="1">
    <TR>
    <TD>dsfds</TD>
    <TD>dsf</TD>
    </TR>
    <TR>
    <TD>dsfds</TD>
    <TD>
    <TABLE border="1">
    <TR>
    <TD><span name = "the target">123</span></TD>
    </TR>
    </TABLE>
    </TD>
    </TR>
    <TR>
    <TD>dsfds</TD>
    <TD><span>456</span></TD>
    </TR>
    </TABLE>然后从table中找出name = "the target"的这个span。
      

  4.   

    <script>
    function searchTagWithName(objRoot,strName){
    return objRoot.getElementsByTagName(strName)?objRoot.getElementsByTagName(strName)[0]:null
    }
    </script>
      

  5.   

    <script>
    function searchTagWithName(objRoot,strName){
    return objRoot.all(strName)?objRoot.all(strName)[0].innerText:null
    }
    </script>
    <TABLE id="moonpiazza" border="1">
    <TR>
    <TD>dsfds</TD>
    <TD>dsf</TD>
    </TR>
    <TR>
    <TD>dsfds</TD>
    <TD>
    <TABLE border="1">
    <TR>
    <TD><span id="the target">123</span><span id="the target">1223</span></TD>
    </TR>
    </TABLE>
    </TD>
    </TR>
    <TR>
    <TD>dsfds</TD>
    <TD><span>456</span></TD>
    </TR>
    </TABLE><input type=button onclick="alert(searchTagWithName(moonpiazza,'the target'))">
      

  6.   

    不好意思,没有看清题目问题:
    1.不知道tag的名称(tagName)
    2.只知道tag的属性name的值
    3.获得属性name==strName的对象集合的第一个对象方法有2:
    a.读取所有对象进行循环 searchTagWithName(objRoot,strName)
    b.递归读取子节点 searchTagWithName02(objRoot,strName)
    <TABLE id="moonpiazza" border="1">
    <TR>
    <TD>dsfds</TD>
    <TD>dsf</TD>
    </TR>
    <TR>
    <TD>dsfds</TD>
    <TD>
    <TABLE border="1">
    <TR>
    <TD><span name="the target">123</span></TD>
    </TR>
    </TABLE>
    </TD>
    </TR>
    <TR>
    <TD>dsfds</TD>
    <TD><span name="test">456</span></TD>
    </TR>
    </TABLE>
    <INPUT TYPE="text" NAME="cName" Id="cName" value="the target">
    <INPUT TYPE="button" value="test" onclick="Test(cName.value)">
    <BR>
    <INPUT TYPE="text" NAME="cName2" Id="cName2" value="test">
    <INPUT TYPE="button" value="test" onclick="Test(cName2.value)"><SCRIPT LANGUAGE="JavaScript">
    <!--
    function searchTagWithName(objRoot,strName)
    {
    // 读取所有对象进行循环
    // 建议使用
    var oChildNodes = objRoot.all ;
    var n = oChildNodes.length ;
    var i ;
    var oRelust = null; for (i=0; i<n; i++)
    { if (oChildNodes[i].name == strName)
    {
    return oChildNodes[i] ;
    }
    }
    }function searchTagWithName02(objRoot,strName)
    {
    // 递归读取子节点
    var oChildNodes = objRoot.childNodes ;
    var n = oChildNodes.length ;
    var i ;
    var oRelust = null; for (i=0; i<n; i++)
    { if (oChildNodes[i].name == strName)
    {
    return oChildNodes[i] ;
    }
    } for (i=0; i<n; i++)
    {
    oRelust =  searchTagWithName(oChildNodes[i],strName);
    if (oRelust != null) 
    {
    return oRelust ;
    }
    } return oRelust ;
    }
    function Test(strName)
    {
    var sStr
    if (strName == "") 
    strName = "span";
    var oSrc = searchTagWithName(moonpiazza,strName);
    if (oSrc == null)
    {
    sStr = "tag属性name:" + strName + " \n"
    sStr += "this is null!"  ;
    }
    else
    {
    sStr = "tag属性name:" + strName + "\n" ;
    sStr += "innerHTML:" + oSrc.innerHTML ;
    }
    alert(sStr);
    }
    //-->
    </SCRIPT>:_)