试图让选择器img src&'星级评分'列表w/jQuery
问题描述:
我想运行一些JavaScript/jQuery从本质上刮下表格中的数据,格式如下。 我得到了大部分的工作,但我试图抓住以下数据: -试图让选择器img src&'星级评分'列表w/jQuery
a)徽标列(第一列) - 图像来源例如'/ static/FIFA16/images/crest/50/light /21.png' b)'星级评分'栏(最后一栏),它没有数字评分,但是具有如下格式的标签。
然后我得到这个数据推入结果数组 - 任何人都可以建议我如何抓住标志(从图像的src)和评级从计数标签和检查是否最后一个标签有字符串'一半'在里面?
<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")
,使头不循环(因为没有必要)。
然后改变
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
'$ tds.eq(0).find('img')。prop('src')' – Satpal