试图让选择器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; 
} 
+1

'$ tds.eq(0).find('img')。prop('src')' – Satpal

首先,我建议选择更改为$(".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