Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/image-processing/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Javascript访问列表项中的表单元格数据_Javascript_Html Table_Innerhtml_Getelementbyid_Getelementsbytagname - Fatal编程技术网

使用Javascript访问列表项中的表单元格数据

使用Javascript访问列表项中的表单元格数据,javascript,html-table,innerhtml,getelementbyid,getelementsbytagname,Javascript,Html Table,Innerhtml,Getelementbyid,Getelementsbytagname,我正在动态创建一个列表,需要能够从表单元格中检索值。结构如下: <ul id="tester"> <li><div><table><tr><td></td><td id="samecellid">I WANT THIS TD VALUE.. <li><div><table><tr><td></td><td id="samec

我正在动态创建一个列表,需要能够从表单元格中检索值。结构如下:

<ul id="tester">
<li><div><table><tr><td></td><td id="samecellid">I WANT THIS TD VALUE..
<li><div><table><tr><td></td><td id="samecellid">I WANT THIS TD VALUE..
<li><div><table><tr><td></td><td id="samecellid">I WANT THIS TD VALUE..
  • 我想要这个TD值。。
  • 我想要这个TD值。。
  • 我想要这个TD值。。
每个列表项中都有一个表-此表只有一行,因此td id在每个列表项中是唯一的,但在整个列表中不是唯一的

我的问题是,我似乎无法获得td单元的值。我尝试过几种方法,这是我的最新方法,但不起作用:

if (lengthoflist > 0) {    
    for (i=1; i<=lengthoflist; i++){    

    var ul = document.getElementById("tester");
    var mya = ul.getElementsByTagName("li")[i];                     
    var myb = mya.getElementsByTagName("div");      
    var myc = myb.getElementsByTagName("table");
    var myd = myc.getElementsByTagName("tr");
    var mye = myd.getElementById("samecellid");

    var celldata = mye.innerHTML;
}
}
if(lengthoflist>0){

对于(i=1;i如果您使用唯一ID,则无需进入HTML树即可直接获取它们:

var mye = myd.getElementById("samecellid");
var myeA = myd.getElementById("samecellidA");

像这样做

<ul id="tester">
<li><div><table><tr><td></td><td id="samecellid1">I WANT THIS TD VALUE..
<li><div><table><tr><td></td><td id="samecellid2">I WANT THIS TD VALUE..
<li><div><table><tr><td></td><td id="samecellid3">I WANT THIS TD VALUE..

if (lengthoflist > 0) {    
    for (i=1; i<=lengthoflist; i++){
      var mye = document.getElementById("samecellid" + i);

      var celldata = mye.innerHTML;
  }
}
  • 我想要这个TD值。。
  • 我想要这个TD值。。
  • 我想要这个TD值。。 如果(lengthoflist>0){
    for(i=1;i
    getElementsByTagName
    返回一个数组,因此最好是这样:

    if (lengthoflist > 0) {  
        var ul = document.getElementById("tester");
    
        for (i=1; i<=lengthoflist; i++) {    
    
            var mya = ul.getElementsByTagName("li")[i];                     
            var myb = mya.getElementsByTagName("div")[0];      
            var myc = myb.getElementsByTagName("table")[0];
            var myd = myc.getElementsByTagName("tr")[0];
            var mye = myd.getElementsByTagName("td")[1]; // the second
    
            var celldata = mye.innerHTML;
        }
    }
    
    if(lengthoflist>0){
    var ul=document.getElementById(“测试仪”);
    
    对于(i=1;i检索循环中的li标记,然后获取每个li中的最后一个td。我稍微修改了您发布的代码。您从1开始循环,这意味着您无法检索第一个列表项。数组索引为0,所以从0开始。在您使用的列表长度
    中,谢谢,我已将ul向上移动。不幸的是,我无法拥有唯一的ID对于td元素,因为列表是动态创建的,当我回来引用它们时,我无法知道ID是什么。这不是引用ID,而是集合中的索引。它说选择td编号2->我想要这个td值。这是一个很好的解决方案,但我不能将td元素的唯一ID作为list是动态创建的,当我回来引用它们时,我无法知道ID是什么。谢谢。for循环实际上是在列表中循环的,所以我将尝试将变量上移到for语句之前。@TW-我明白了。我更新了答案以反映我将如何做。这正是我最终得到的结果。非常感谢,解决了这个问题。谢谢!
    
    var liTags = document.getElementById("tester").getElementsByTagName('li'); 
    
    for (var i = 0; i < liTags.length; i++) {
        var tdTags = liTags[i].getElementsByTagName('td');
        var celldata = tdTags[tdTags.length - 1].innerHTML; //last td
        console.log(celldata);
    }
    
    var liTags = document.getElementById("tester").getElementsByTagName('li'); 
    
    for (var i = 0; i < liTags.length; i++) {
        var celldata = liTags[i].getElementsByTagName('tr')[0].lastChild.innerHTML;  //last td
        console.log(celldata);
    }