jQuery在标签之间查找文本

时间:2013-11-07 19:00:01

标签: javascript jquery

免责声明:是的,我知道这个HTML的混乱。它来自遗留应用程序。不幸的是,更改HTML不是一种选择,因为它是一个包含许多依赖项的大页面。

那就是说,我有以下代码:

<tr>
    <th align="left" style="background:#CCCCCC;" nowrap="">
        <a class="ContentLink addLink" id="content">
            <img border="0" src="/tools/images/buttons/restore.gif" alt="edit (popup)">Add
        </a>
    </th>
    <th colspan="3" nowrap="" width="100%">
        <font id="maroon">Associated Computer(s)</font>
    </th>
</tr>

使用jQuery,我想在font标签“Associated Computer(s)”之间获取字符串。

我尝试过使用jQuery的findnext API,但它并没有像我预期的那样正常工作。

我尝试了var myHeader_next = $(this).find("font");并返回了一个对象。当我使用var myHeader_trim = $.trim(myHeader_next);时,我会获得[object Object]

我已经尝试了var myHeader_next = $(this).find("font").text();var myHeader_trim = $.trim(myHeader_next);,对于两者,我得到了空白回复。

$(document).ready(function () {
    $(".addLink").click(function(){
        var SR_ID = $("#SR_ID").val();
        var myHeader_next = $(this).find("font").text();
        var myHeader_trim = $.trim(myHeader_next);
        console.log(myHeader_next);
        console.log(myHeader_trim);
    });     
});

我有一种感觉,我不能正确理解findnext,但不知道为什么。

2 个答案:

答案 0 :(得分:1)

您可以使用.html()。

$('#maroon').html()

返回

Associated Computer(s)

答案 1 :(得分:1)

找到它的最简单方法是:

var myHeader_next = $(this).closest("tr").find("font");

这会改变DOM更改,直到找到第一个祖先<tr>,然后.find("font")找到<font>标记后代中的所有<tr>个标记。

此时,您应该拥有正在寻找的正确的<font>元素,.text()将起作用。