<script>
function gt()
{
var id = document.getElementById('dvid').value.toString();
var pnode = document.getElementById('d'+id);
var sibling = pnode.getElementsByTagName("input")[0].getAttribute("value");
alert(sibling);
}</script>
</HEAD><BODY>
<INPUT TYPE="text" NAME="" id="dvid" value="Please input 0-3">
<input type="button" value="Get it!" onclick="gt();return true;"><br />
0<div id='d0'> ....<input name=t type="text" value='d0d0d0'>.... </div>
1<div id='d1'> ....<input name=t type="text" value='d1d1d1'>.... </div>
2<div id='d2'> ....<input name=t type="text" value='d2d2d2'>.... </div>
3<div id=d3> ....<input name=t type="text" value='d3d3d3'>.... </div></BODY>
</HTML>

解决方案 »

  1.   

    先截取全部input,循环没个input并判断父元素的id是不是你想要的
    var inputCollection = getElementByNames("t");
    for(var i=0;i<inputCollection.length;i++)
    {
    if(inputCollection(i).parentElement.id="d#"){你想要的过程}}
      

  2.   

    哦 忘了说一下 Input 标签也可以设定id属性 这样就有2个id了 一个是name 一个是id 而且name和id可以不相同 并都可以通过getElementById取得
      

  3.   

    lantersen(蓝水仁--剑锋于砺出,梅香至苦寒!~) ,你能告诉我gzdiablo() 说的是什么意思么
      

  4.   

    蓝水仁--剑锋于砺出,梅香至苦寒是 从父节点取得字节点-----.getElementsByTagName("input")[0].getAttribute而gzdiablo()是反推福节点来判断-----.parentElement.id
      

  5.   

    简单说下吧 可以是这样
    <input name="t" id="d0" value="XXXXXX">
    <input name="t" id="d1" value="XXXXXX">
    <input name="t" id="d2" value="XXXXXX">
    <input name="t" id="d3" value="XXXXXX">
    <input name="t" id="d4" value="XXXXXX">var inputCollection = getElementByNames("t");
    for(var i=0;i<inputCollection.length;i++)
    {
    if(inputCollection(i).id="d0"){你想要的过程}}
      

  6.   

    我明白,你的访问方法没问题,
    但是,
    getElementByNames("t"),就因为我没办法主动的去控制,所以要从div的id来把握
    所以你的方法是对的,但是我还是倾向于从div这个父节点去引领其余的操作。
    还有一个问题
    pnode.getElementsByTagName("input")[0].getAttribute
    可以改成
    pnode.getElementsByNames("t")[0].value么?
      

  7.   

    还有一个问题
    pnode.getElementsByTagName("input")[0].getAttribute
    可以改成
    pnode.getElementsByNames("t")[0].value么?这个问题,额外给分!!
      

  8.   

    pnode.getElementsByTagName("input")[0].getAttribute
    可以改成
    pnode.getElementsByNames("t")[0].value么?如果我想一这种方式改,应该怎么改?这个问题,额外给分!!
      

  9.   

    pnode.getElementsByNames("t")[0].valuepnode.getElementsByName("t")[0].value
    这样些才对
      

  10.   

    不好意思 
    getElementsByName是document的方法
    所以要
    document.getElementsByName("t")[*].value
      

  11.   

    alert(document.getElementById("d3").getElementsByNames("d3")[0].value);
      

  12.   

    getElementsByName 是 document 的方法
    所以要
    document.getElementsByName("t")[*].value要这样
    alert(document.getElementsByName("d3")[0].value)还有不要把 getElementsByName 写成 getElementsByNames
      

  13.   

    alert(document.getElementById("d3").getElementsByName("t").value);这样也不可以阿
      

  14.   

    alert(document.getElementById(  "d3  ").getElementsByName(  "t  ")[0].value);这样也不可以阿
      

  15.   

    巨不理解为什么
    alert(document.getElementById("d1").getElementsByTagName("input")[0].getAttribute("value")); 可以运行

    alert(document.getElementById("d1").getElementsByName("t")[0].value);
    不可以运行,谁能告诉我原因,或者下面这种方式该怎么改??
      

  16.   

    getElementsByName 是 document 的方法
    一定要这么写document.getElementsByName("XXX")普通元素才支持
    getElementsByTagName() 方法
      

  17.   

    总算明白你想干什么了 这样写就可以了
    <input name="t" id="d0" value="XXXXXX">
    <input name="t" id="d1" value="XXXXXX">
    <input name="t" id="d2" value="XXXXXX">
    <input name="t" id="d3" value="XXXXXX">
    <input name="t" id="d4" value="XXXXXX">--------------------------------------------------------------
    alert(document.getElementById("d1").value);
      

  18.   

    你误解了
    我不是要得到层的value
    而是要得到层里面对象的value
    如果层里面的对象有多个,那你怎么办,
    所以还是应该把以下方法改进一下
    alert(document.getElementById("d1").getElementsByName("t")[0].value);
    但还是不知道怎么改