我正在尝试运行一些 javascript/jQuery 来基本上从以下格式的表中抓取数据。 我已经完成了大部分工作,但是我还尝试获取以下数据:-
a) Logo 列(第一列) - 图像源,例如 '/static/FIFA16/images/crest/50/light/21.png' b) “星级”列(最后一列),这没有数字评级,而是具有如下所示格式的标签。
然后我将这些数据推送到结果数组中 - 谁能建议我如何获取 Logo (从图像的 src 中)以及通过计算标签并检查最后一个标签是否包含字符串“half”来获取评级里面?
<table class="table table-striped teams">
<thead>
<tr>
<th class="logo">Logo</th>
<th class="name">Name</th>
<th class="league">League</th>
<th class="starrating">Team Rating</th>
</tr>
</thead>
<tbody>
<tr>
<td><a href="/team/21/fc-bayern/" title="FC Bayern"><img alt="FC Bayern" class="team small" src="/static/FIFA16/images/crest/50/light/21.png" title="FC Bayern"/></a></td>
<td data-title="Name"><a href="/team/21/fc-bayern/" title="FC Bayern">FC Bayern</a></td>
<td data-title="League"><a href="/teams/?league=19" title="Bundesliga">Bundesliga</a></td>
<td data-title="Team Rating">
<span class="star">
<i class="fa fa-star fa-lg"></i>
<i class="fa fa-star fa-lg"></i>
<i class="fa fa-star fa-lg"></i>
<i class="fa fa-star fa-lg"></i>
<i class="fa fa-star-half-o fa-lg"></i>
</span>
</td>
</tr>
..... more rows...
</tbody>
</table>
我的 jQuery 代码..
$(".table-striped tr").each( function() {
var $tds = $(this).find('td'),
icon = $tds.eq(0).text()
club = $tds.eq(1).text(),
league = $tds.eq(2).text(),
rating = $tds.eq(3).text,
result.push({
icon : icon,
club : club,
league : league,
rating : rating
});
});
return result;
}
最佳答案
首先,我建议将选择器更改为 $(".table-striped tbody tr")
,这样 header 就不会循环(因为没有必要)。
然后改变
icon = $tds.eq(0).text()
...
rating = $tds.eq(3).text,
至
icon = $tds.eq(0).find('img').attr('src'),
...
rating = $tds.eq(3).find('i:first').attr('class');
因此,我假设 rating
应该产生第一个 i
的类名。在您的示例中,结果为 fa fa-star fa-lg
关于javascript - 尝试使用 jQuery 获取表中 img src 和 'star rating' 列的选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37526288/