我需要获取HTML表中的所有行:
//html
<div class="container">
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</div>
//js
const BOXES = document.querySelectorAll('.box');
let turn = true;
let opened = [1, 1, 1, 1, 1, 1, 1, 1, 1];
let x = [];
let o = [];
for (let i = 0; i < BOXES.length; i++) {
BOXES[i].addEventListener('click', () => {
if (turn == true && opened[i] == 1) {
BOXES[i].innerHTML = "<p>X</p>";
x.push(i);
x.sort();
}
if (turn == false && opened[i] == 1) {
BOXES[i].innerHTML = "<p>O</p>";
o.push(i);
o.sort();
}
opened[i] = 0;
turn = !turn
})
}
由于页面中有很多表,我想从该特定表中获取行。
这是我的Xpath:
<table>
<thead>
<tr>
<th>Name</th>
<th>Location</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dunkin Donuts</td><td>2 York Ave</td>
</tr>
</tbody>
</table>
我也尝试过:
table[tr/th/text()="Location"]//tr
不返回任何元素。关于如何使它起作用的想法?
答案 0 :(得分:0)
也许您的上下文节点没有table
子节点。您可以通过全局选择table
的所有//table
元素来解决此问题。您也没有考虑thead
和tbody
元素。这样做将导致以下XPath表达式:
//table[thead/tr/th/text()="Location"]/tbody/tr