首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何选择具有相同类名的特定<span>?

如何选择具有相同类名的特定<span>?
EN

Stack Overflow用户
提问于 2017-03-29 08:00:33
回答 5查看 813关注 0票数 2

我正在尝试从这块HTML中提取一些数据。

代码语言:javascript
复制
<div class="group-capitalization-content field-group-html-element">
    <h2><span>Capitalization</span></h2>
    <div  class="item">
        <div class="label-inline">Issued &amp; Outstanding:&nbsp;</div>
        <span class="number">242906121</span>
    </div >
    <div class="item">
        <div class="label-inline">Reserved for Issuance:&nbsp;</div>
        <span  class="number">51423534</span >
    </div>
</div>

我使用一个名为cheerio的npm模块从HTML中抓取数据。因此,我使用以下代码来尝试获取"numbers"

代码语言:javascript
复制
 var data = $('.group-capitalization-content .item .number').text();

运行这段代码会产生:24290612151423534,这是两个结果相加在一起。

如何在此处选择单个号码/分隔它们?

EN

回答 5

Stack Overflow用户

发布于 2017-03-29 08:04:55

如果上面的示例是您需要的全部,请使用.eq()

第一个项目的text()

代码语言:javascript
复制
$('.group-capitalization-content .item .number').eq(0).text();

...and第二个是

代码语言:javascript
复制
$('.group-capitalization-content .item .number').eq(1).text();

如果您有更复杂的情况,并且需要将数据存储在数组中,稍后,我将使用$.map() (@Sushanth's answer) -可能更具体一点,以排除页面中存在其他.number的可能性:

代码语言:javascript
复制
let data = $.map(
  $('.group-capitalization-content .item .number'), 
  function(e){ return $(e).text() }
);
票数 2
EN

Stack Overflow用户

发布于 2017-03-29 08:05:57

您可以使用map方法并以.number类为目标,该类将把内容输出到一个数组中。

代码语言:javascript
复制
let data = $.map($('.number'), function(elem) {
    return $(elem).text();
});

console.log(data);
票数 1
EN

Stack Overflow用户

发布于 2017-03-29 08:06:54

如果你事先不知道会有多少,你可以用.each遍历它们

代码语言:javascript
复制
$('.group-capitalization-content .item .number').each(function() {
    $(this).text(); // Save this to a var or do something with it
});
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43081973

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档