使用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;igetElementsByTagName
返回一个数组,因此最好是这样:
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);
}