我有这个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;
我试图在一段时间后获取文字Namida no Niji
,Theme Song Single
和其他文字。
答案 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 变量包含您需要的所有文本值。
希望这可以帮助你...