如何select具有相同类名的特定<span>?
我试图从这个HTML块中提取一些数据。
<div class="group-capitalization-content field-group-html-element"> <h2><span>Capitalization</span></h2> <div class="item"> <div class="label-inline">Issued & Outstanding: </div> <span class="number">242906121</span> </div > <div class="item"> <div class="label-inline">Reserved for Issuance: </div> <span class="number">51423534</span > </div> </div>
我使用一个名为cheerio
的npm模块来从HTML中获取数据。 因此,我有以下代码来尝试获取"numbers"
。
var data = $('.group-capitalization-content .item .number').text();
运行此代码将导致: 24290612151423534
,这两个结果都附加在一起。
如何在这里select个人号码/将他们分开?
你可以map
方法和目标的.number
类,它会把内容吐出一个数组。
let data = $.map($('.number'), function(elem) { return $(elem).text(); }); console.log(data);
如果上面的例子是你所需要的,使用.eq()
。
第一项的text()
是
$('.group-capitalization-content .item .number').eq(0).text();
…第二个是
$('.group-capitalization-content .item .number').eq(1).text();
如果你有一个更复杂的情况下,你需要将数据存储在一个数组中,以后,我会使用$.map()
( @Sushanth's answer
) – 可能更具体一点,排除其他的可能性.number
页面中的数字:
let data = $.map( $('.group-capitalization-content .item .number'), function(e){ return $(e).text() } );
each
函数如何通过你的每个结果,如:
$('.group-capitalization-content .item .number').each(function(index, element) { //your individual item code goes here console.log( index + ": " + $( this ).text() ); });
如果你.each
不知道有多less,你可以用一个.each
循环它们
$('.group-capitalization-content .item .number').each(function() { $(this).text(); // Save this to a var or do something with it });
我通常得到所有的DOM元素,然后循环他们做我必要的function。 这里是一个工作小提琴。 https://jsfiddle.net/bbmtk7tm/
var data = $('.group-capitalization-content .item .number'); for(var i=0; i<data.length;i++) { console.log(data[i].innerHTML); }
$('.group-capitalization-content>.item>.number').each(function(index, value){ console.log('Number at '+index+': '+$(value).text()) })
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <div class="group-capitalization-content field-group-html-element"> <h2><span>Capitalization</span></h2> <div class="item"> <div class="label-inline">Issued & Outstanding: </div> <span class="number">242906121</span> </div > <div class="item"> <div class="label-inline">Reserved for Issuance: </div> <span class="number">51423534</span > </div> </div>