Javascript 迭代多个div并将信息提取到数组中?
我有一个页面,上面有几个像这样的divJavascript 迭代多个div并将信息提取到数组中?,javascript,jquery,html,Javascript,Jquery,Html,我有一个页面,上面有几个像这样的div <div class="market_listing_row" id="12345"> ... <div class="priceblock"> <span class="price">0,0</span> </div> </div> 如何迭代这些div?我试图用jQuery和原始JS来实现它,但失败了 编辑: 显然,CasperJS和jQuery一起造成了混乱,可能是因为
<div class="market_listing_row" id="12345">
...
<div class="priceblock">
<span class="price">0,0</span>
</div>
</div>
如何迭代这些div?我试图用jQuery和原始JS来实现它,但失败了
编辑:
显然,CasperJS和jQuery一起造成了混乱,可能是因为“this”。无论是哪种方式,我都找到了使用casper模块方法解决问题的方法:
var price = this.fetchText('div.market_listing_row .price').split('\n');
var id = this.getElementsAttribute('div.market_listing_row', 'id');
这将创建两个数组:用于价格和ID 试试看
xResult = [];
$('.market_listing_row').each(function(){
var xJson = {};
xJson.id = $(this).attr('id');
xJson.price = $(this).find('.price').text();
xResult[xResult.length] = xJson;
});
试试看
我建议:
var objArray = $('.market_listing_row').map(function () {
return {
'id': this.id,
'price': $(this).find('.price').text()
};
}).get();
参考资料:
- 我建议:
var objArray = $('.market_listing_row').map(function () {
return {
'id': this.id,
'price': $(this).find('.price').text()
};
}).get();
参考资料:
var arr = [];
$('.market_listing_row').each(function(){
id = $(this).attr('id');
price = $(this).find('.price').text();
arr.push({id: id, price: price});
});
如果你有任何问题,请告诉我。希望这有帮助
我使用下面的代码制作了一个关于fiddle的非常基本的示例
var arr = [];
$('.market_listing_row').each(function(){
id = $(this).attr('id');
price = $(this).find('.price').text();
arr.push({id: id, price: price});
});
如果你有任何问题,请告诉我。希望这有帮助 hi,将本机(原始js)版本加入混合
借助于:
function $class(str,_scope) {
if(!_scope) { _scope=document; }
var elems = _scope.getElementsByTagName('*'), elArray =[];
var len=elems.length;
for (var cnt = 0; cnt < len; ++cnt) {
if((' ' + elems[cnt].className + ' ').indexOf(' ' + str + ' ') > -1) {
elArray.push(elems[cnt]);
}
}
return elArray;
}
函数$class(str,\u范围){
如果(!\u scope){\u scope=document;}
var elems=_scope.getElementsByTagName('*'),elArray=[];
var len=元素长度;
对于(var cnt=0;cnt-1){
elArray.push(elems[cnt]);
}
}
回程线;
}
为适应标记设置,可以如下使用:
function getPriceObjects() {
var marketrows = $class("market_listing_row"), marketArray=[];
for (var i = 0, len=marketrows.length; i < len; ++i) {
var id = marketrows[i].getAttribute("id");
var price = $class("price",marketrows[i])[0].innerHTML;
marketArray.push({ id: id, price: price});
}
return marketArray;
}
var marketPriceArray = getPriceObjects();
函数getPriceObjects(){
var marketrows=$class(“market_listing_row”),marketArray=[];
对于(变量i=0,len=marketrows.length;ifunction $class(str,_scope) {
if(!_scope) { _scope=document; }
var elems = _scope.getElementsByTagName('*'), elArray =[];
var len=elems.length;
for (var cnt = 0; cnt < len; ++cnt) {
if((' ' + elems[cnt].className + ' ').indexOf(' ' + str + ' ') > -1) {
elArray.push(elems[cnt]);
}
}
return elArray;
}
函数$class(str,\u范围){
如果(!\u scope){\u scope=document;}
var elems=_scope.getElementsByTagName('*'),elArray=[];
var len=元素长度;
对于(var cnt=0;cnt-1){
elArray.push(elems[cnt]);
}
}
回程线;
}
为适应标记设置,可以如下使用:
function getPriceObjects() {
var marketrows = $class("market_listing_row"), marketArray=[];
for (var i = 0, len=marketrows.length; i < len; ++i) {
var id = marketrows[i].getAttribute("id");
var price = $class("price",marketrows[i])[0].innerHTML;
marketArray.push({ id: id, price: price});
}
return marketArray;
}
var marketPriceArray = getPriceObjects();
函数getPriceObjects(){
var marketrows=$class(“market_listing_row”),marketArray=[];
对于(变量i=0,len=marketrows.length;i