使用jQuery来导航数据

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

标签: javascript jquery html

我有这个HTML:

<tr class="odd">
    <td class="teams league">
        <span class="team"><a>Team A</a> <span>at</span></span> 
        <span class="team"><a>Team B</a> </span>
        <div>
            <span>7:00 pm EDT</span>
        </div> 
    </td>
    <td>
        <div>
            <span></span>
                <div>
                    <span>-124</span>
                    <span>+113</span>
                </div>
        </div>
    </td>
    <td>
        <div>
            <span></span>
                <div>
                    <span>-140</span>
                    <span>+120</span>
                </div>
        </div>
    </td>
    <td>
        <div>
            <span></span>
                <div>
                    <span>-124</span>
                    <span>+113</span>
                </div>
        </div>
    </td>
    <td>
        <div>
            <span></span>
              <div>
                  <span>-125</span>
                  <span>+115</span>
                  <!-- These are the two data I'm trying to pull out. --!>
              </div>
        </div>
    </td>
</tr>

页面上有几个这样的<tr>,用交替的类oddeven表示好吧,所以我将团队名称存储在变量中,称之为{{1 }}。我想找到总体teamName,其中两个团队之一(团队A和团队B)等于<tr>。然后,如果存在,我想获得teamName标签中的第五组和最后一组数据(我已经在HTML中注释了它)。我知道我需要一个jQuery选择器来解决这些问题,但我无法完全理解它。这是我一直在玩的JSFiddle试图取得一些进展。有人可以帮忙吗?

编辑:我尝试了类似:<span>的内容,但是没有用。

2 个答案:

答案 0 :(得分:3)

您可以使用:contains来完成此操作。这是一个非常基本的例子:

$('tr:contains(' + teamName + ')')

要在一个步骤中获得最后一个跨度,您需要添加:

$('tr:contains(' + teamName + ') span:last')

这是更新后的JSFiddle:http://jsfiddle.net/zZ8NB/6/

答案 1 :(得分:0)

您可以大大简化此代码,但这可以解决问题:

$(".teams").find(".team").find("a").each(function () {
    var row;
    if ($(this).text() === teamName) {
        row = $(this).closest("tr");
        row.find("td").last().find("div").find("div").find("span").each(function () {
            console.log($(this).text());
        });
    }
});