<p name="pr"> aaa </p>
<p name="pr"> bbb </p>
<p name="pr"> ccc </p>
<p name="pr"> ddd </p>
<p name="pr"> eee </p><script type="text/javascript"> var pArr = document.getElementsByName("pr");
alert(pArr[1].tagName);

</script>
拿到name是pr的p标签对象数组pArr,但,网页由错误,显示pArr是空的。 到底哪里出问题了?

解决方案 »

  1.   

    除表单对象的内置标签外, 别的标签不支持 name 属性....
      

  2.   

    但你可以这样:
    <div id='container'>
    <p> aaa </p>
    <p> bbb </p>
    <p> ccc </p>
    <p> ddd </p>
    <p> eee </p>
    </div><script type="text/javascript">var container = document.getElementById("container");var p_a = container.getElementsByTagName('p')
    alert(p_a)
        
    </script>
      

  3.   

    这个确实郁闷
    只能用getElementsByTagName代替
    或者模拟一个getElementsByClassName
      

  4.   

    不支持Name属性,换id,就可以了
      

  5.   

    确实是只有表单对象时,getElementsByName才能枚举到。其它的好像都枚举不到。
    我做了一个例子,可以满足你的需要。就是检索特定p标签。在特定的p标签上加入特定属性ff。通过检索特定属性ff来枚举p标签。
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    <script type="text/javascript" >function myFun()
    {
     var count = 0;
     var pArr = document.getElementsByTagName("p");
         for(var i=0;i<pArr.length;i++)
     {
      var p = pArr[i];
    if ( p.getAttribute("ff") == "pr" )
    {
    count++;// 符合要求的p标签数目
    }
     }
     alert(count);

    }
           
        
    </script>
    </head><body >
    <p name="pr" ff="pr"> aaa </p>
    <p name="pr" ff="pr"> bbb </p>
    <p name="pr" ff="pr"> ccc </p>
    <p name="pr" ff="pr"> ddd </p>
    <p name="pr" ff="pr"> eee </p>

    <p name="pr" > eee </p>
    <p name="pr" > eee </p>
    <p name="pr" > eee </p>
    <input type="button"  onclick="myFun()" value="按钮"/>
    </body>
    </html>
      

  6.   

    html支持属性扩展
     即使没有name属性. 给定义一个也不会报错
    楼上的方法不错
    也可以用name判断.不用扩展的ff属性
      

  7.   

    只有 input 标记的name可以通过这个方法获取。
      

  8.   

    var getElementsByName = function(name){
    var rets = document.getElementsByName(name);
    if (rets.length == 0)
    {
    rets = [];
    var alls = document.getElementsByTagName("*");
    for (var i=0;i<alls.length ; i++)
    {
    if (alls[i].getAttribute("name") == name)
    {
    rets.push(alls[i]);
    }
    }
    }
    return rets;
    };---即可解决你的问题
      

  9.   

    javascript之家,是新起的JS角本程序学习站点;
    该站详细分类JS的基础,对象,极其应用;http://www.ccscript.cn/该站有多种当今流行的JS框架;
    站内主打Jquery框架的基础及应用;
    包括特效代码和展示特效;
    站内同时提供多种其它WEB开发服务应用;