我正在尝试访问以下<td>
:
<table class="datadisplaytable" summary="This table lists the scheduled meeting times and assigned instructors for this class..">
<caption class="captiontext">Scheduled Meeting Times</caption>
<tbody><tr>
<th class="ddheader" scope="col">Time</th>
<th class="ddheader" scope="col">Days</th>
<th class="ddheader" scope="col">Where</th>
<th class="ddheader" scope="col">Date Range</th>
<th class="ddheader" scope="col">Schedule Type</th>
<th class="ddheader" scope="col">Instructors</th>
</tr>
<tr>
<td class="dddefault">8:35 AM - 9:55 AM</td>
<td class="dddefault">TR</td>
<td class="dddefault">Trottier Building 0100</td>
<td class="dddefault">Jan 05, 2015 - Apr 13, 2015</td>
<td class="dddefault">Lecture</td>
<td class="dddefault">Harry Leib </td>
</tr>
</tbody></table>
我在一个名为var data_tables
的HTML集合中有一堆这些表,我可以使用data_tables[0].childNodes[0].innerText
成功访问标题(即集合中的第一个表)。但是,当我尝试使用<td>
访问data_tables[0].childNodes[1].childNodes[1].childNodes[0].innerText
时(例如文字“上午8:35 - 上午9:55”),我使用Chrome时会“未定义”。我错过了什么? <td>
不是三层节点,而是<table>
?
答案 0 :(得分:1)
您可能正在获取文本节点而不是td
元素。
不要将.childNodes
与表格一起使用。而是使用.tBodies
,.rows
和.cells
集合。
data_tables[0].tBodies[0].rows[1].cells[0].innerText
此外,我使用.textContent
代替.innerText
,以便您使用标准媒体资源。