2011-05-09 118 views
3

如果我有一个div res其中包含N个表格元素为Y的div id为eye-d他们的内部..迭代div的表格及其元素?

如何我会遍历这些每个表中获取眼d.innerHTML的?

注意:eye-d是独一无二的。 1 eye-d有很多表格。实例的

eye-d

<div id=​"eye-d">​ 
    <table border=​"0" cellpadding=​"2" cellspacing=​"1" class=​"list">​ 
    <tbody>​ 
     <tr class=​"table_text">​…​</tr>​ 
     <tr>​ 
     <td class=​"odd">​…​</td>​ 
     <td class=​"odd">​ABC</td>​ 
     <td class=​"odd">​N/A​</td>​ 
     </tr>​ 
    </tbody>​ 
    </table>​ 
</div> 

按照要求..改写......

我有1分度,一个id eye-d然后,我有很多表...每个表中有许多DIV与类odd。我希望eye-d内的每个表的odd.innerHTML

+6

请张贴一些示例HTML。 ID字面上是“eye-d”吗? ID必须是唯一的。 – 2011-05-09 21:02:43

+0

对不起,遗漏了错误。它现在在那里! – Skizit 2011-05-09 21:06:43

+0

我很困惑。这些'div'现在包含在'div'' res中包含的表格中吗? – 2011-05-09 21:13:14

回答

3

你的ID是不是唯一的。

您不能有多个<div>的ID为"eye-d"

ID的是唯一的,而name属性不必是唯一的。您可能想要使用类。

<div class="eye-d"> ... </div>

[编辑]

那些div的的选择很简单,只要$("#eye-d table .odd")(使用jQuery

如果必须使用原始JS,那么你可以:

var div = document.getElementById("eye-d"); 
var tables = []; 
recurse(res.childNodes, function(el) { 
    if (el.nodeName.toLowerCase() === "table") { 
     tables.push(el); 
    } 
}); 
// array of innerHTML of odd divs. 
var oddDivs = []; 
for (var i = 0, ii = tables.length; i < ii; i++) { 
    recurse(tables[i].childNodes, function(el) { 
     if (el.className.indexOf("odd") > 0) { 
      oddDivs.push(el.innerHTML); 
     } 
    }); 
} 

function recurse(nodeList, do) { 
    for (var i = 0, ii = nodeList.length; i < ii; i++) { 
     do(nodeList[i]); 
     if (nodeList[i].childNodes.length > 0) { 
      recurse(nodeList[i].childNodes, do); 
     } 
    } 
} 

递归递归地将节点树遍历到如果找到,则每个元素都调用do。然后,您可以搜索任何你想要的。

+0

这不是关于jQuery;) – 2011-05-09 21:13:39

+0

@FelixKling我不能懒得写cookie切割机原始的JS代码。但我会请你。 – Raynos 2011-05-09 21:14:28

+0

只是说,如果您使用它,至少应该提及并链接到它。如果我知道真正的结构,我可以用普通的JS编写它;) – 2011-05-09 21:15:23

0

如果有Y的div和eye-d你的意思是眼部接着是* d * igit /数,那么它的那么容易,因为while (Y--) document.getElementById('eye-'+Y).innerHTML=...

0

据我所知,您有:
1.一个ID为eye-d的div div
2.这个div里有几个表格。
3.您想获取每个表格并查看其innerHTML。

var allTables = document.getElementById('eye-d').getElementsByTagName('table'); 
for(i in allTables){ alert(allTables[i].innerHTML); }