jQuery从不同的地方选择各种信息

时间:2014-03-18 19:20:37

标签: javascript jquery html

我正在使用以下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个这样的行(row1row2),交替为oddrow然后evenrow。我在JavaScript / jQuery代码中将整个HTML作为字符串。我还有两个三字母缩写的信息:在此示例中,WSHSAC。我需要的是<td style="text-align:center;">行的第三个row2。我应该指出页面上有几个row1row2的表,所以我需要一个通用选择器。我一直在做的只是抓取所有行中的所有数据,然后从那里解析它,但数据的不一致使得更难。有一个快速而肮脏的jQuery会指向我需要的数据吗?

我在想$("tr td:contains(" + abbrev + ") td:contains('row2')").text();之类的东西,但是没有得到它。

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

您的选择器中的层次结构错误,带有缩写的td s不是td s的祖先,文本为“row2”

您还需要确保在abbrev变量附近有撇号。

你可以尝试:

$("tr td:contains('row2') td:contains('" + abbrev + "')").text()

您是否可以添加语义类?这些选择器很难维持。