我正在使用以下HTML:
<tr class="oddrow">
<td>row1</td>
<td style="text-align:center;">
<table>
<tbody>
<tr>
<td width="50%">-1<br>+1</td>
<td width="50%">WSH: -110<br>SAC: -110</td>
</tr>
</tbody>
</table>
</td>
<td style="text-align:center;">
<table>
<tbody>
<tr>
<td width="50%">202.5</td>
<td width="50%">o: -110<br>u: -110</td>
</tr>
</tbody>
</table>
</td>
<td style="text-align:center;">WSH: 0<br>SAC: 0</td>
</tr>
<tr class="evenrow">
<td>row2</td>
<td style="text-align:center;">
<table>
<tbody>
<tr>
<td width="50%">-1<br>+1</td>
<td width="50%">WSH: -110<br>SAC: -110</td>
</tr>
</tbody>
</table>
</td>
<td style="text-align:center;">
<table>
<tbody>
<tr>
<td width="50%">202.5</td>
<td width="50%">o: -110<br>u: -110</td>
</tr>
</tbody>
</table>
</td>
<td style="text-align:center;">WSH: 0<br>SAC: 0</td>
<!-- The above line is the one I need. --!>
</tr>
有2个这样的行(row1
和row2
),交替为oddrow
然后evenrow
。我在JavaScript / jQuery代码中将整个HTML作为字符串。我还有两个三字母缩写的信息:在此示例中,WSH
和SAC
。我需要的是<td style="text-align:center;">
行的第三个row2
。我应该指出页面上有几个row1
和row2
的表,所以我需要一个通用选择器。我一直在做的只是抓取所有行中的所有数据,然后从那里解析它,但数据的不一致使得更难。有一个快速而肮脏的jQuery会指向我需要的数据吗?
我在想$("tr td:contains(" + abbrev + ") td:contains('row2')").text();
之类的东西,但是没有得到它。
有人可以帮忙吗?
答案 0 :(得分:0)
您的选择器中的层次结构错误,带有缩写的td
s不是td
s的祖先,文本为“row2”
您还需要确保在abbrev
变量附近有撇号。
你可以尝试:
$("tr td:contains('row2') td:contains('" + abbrev + "')").text()
您是否可以添加语义类?这些选择器很难维持。