如何使用jquery(多个跨度)获取跨度后的文本

时间:2015-06-30 02:31:30

标签: jquery

我有这个HTML代码,我想知道如何在span之后获取文本 我尝试使用不同的方法,但都没有。



<div id="nowplaying">
    <div class="art200-left fixed-height">
        <img class="art200" alt="Album Art" src="https://www.animenfo.com/radio/albumart/PCCA-02442.jpg" id="nowplaying_albumart" albumart class="albumart" hotkey="alt+=" />
        <div class="float-container">
            <div class="row">
                <div class="span6"> <span class="text-semibold">Artist:</span>  <span data-search-artist>Ueto Aya</span>
                    <br/> <span class="text-semibold">Title:</span> Namida no Niji
                    <br/> <span class="text-semibold">Album:</span>  <span data-search-album>Namida no Niji/SAVE ME</span> (2007)
                    <br/> <span class="text-semibold">Album Type:</span> Theme Song Single
                    <br/> <span class="text-semibold">Series:</span>  <span class="seriestag">Hotelier</span>
                    <br/> <span class="text-semibold">Genre(s):</span> Jdorama
                    <br/>
                </div>
                <div class="span6"> <span class="text-semibold">Duration:</span>  <span id="np_timer" rel="214">3:34</span> / <span id="np_time" rel="265">4:25</span>
                    <br/>	<span class="text-semibold">Rating:</span> 5.95 / 10 (234 rates)
                    <br/>
&#13;
&#13;
&#13;

我试图在一段时间后获取文字Namida no NijiTheme Song Single和其他文字。

2 个答案:

答案 0 :(得分:0)

var elemBefore = $('span.text-semibold').filter(function() {
        return $(this).text().match(/Title:/);
    }),
    relatives = elemBefore.parent().contents(),
    index = relatives.index(elemBefore);
var after = relatives.eq(index+1).text();

elemBefore分配了您想要下一个节点的元素。 relatives被分配了具有相同父节点的所有节点的选择器,包括它自己。 在index内为elemBefore分配了relatives的索引。 after抓取您的测试用例正在寻找的文本。

关键是contents jquery方法。它返回所有子节点(包括文本节点)。 eq方法用于按索引获取节点。

答案 1 :(得分:0)

尝试使用nextSibling及其相应的nodeValue来获取位于span之后的元素的文字。

代码段:

var spans = $("div.span6 br").next("span.text-semibold"),
    i = 0, spansLength = spans.length,arr = [];      
while (i < spansLength) {
    if (spans[i].nextSibling.nodeValue != "  ")
    arr[i] = spans[i].nextSibling.nodeValue;
    i++;
}

arr 变量包含您需要的所有文本值。

希望这可以帮助你...