Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/413.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQUERY-获取值并在数组值中显示(如下所示)_Javascript_Jquery - Fatal编程技术网

Javascript JQUERY-获取值并在数组值中显示(如下所示)

Javascript JQUERY-获取值并在数组值中显示(如下所示),javascript,jquery,Javascript,Jquery,下面使用HTML/JS代码来满足我的要求。就个人而言,我能够获得预期的值 但是,我需要按如下所示以数组格式插入提取的值。我不能用这种JS代码方法来实现这一点 var getOfferCode; var-getRoomCode; var-getTitle; var combinedArr=[]; $('.wrapper container')。每个(函数(){ getOfferCode=$(this.find('.list item').attr('data-offer-code'); getR

下面使用HTML/JS代码来满足我的要求。就个人而言,我能够获得预期的值

但是,我需要按如下所示以数组格式插入提取的值。我不能用这种JS代码方法来实现这一点

var getOfferCode;
var-getRoomCode;
var-getTitle;
var combinedArr=[];
$('.wrapper container')。每个(函数(){
getOfferCode=$(this.find('.list item').attr('data-offer-code');
getRoomCode=$(this.find('.list item').attr('data-room-code');
getTitle=$(this.find('.list item h2').html();
combinedArr.push();
});
console.log(combinedArr)

标题1
标题2
标题2

.push方法需要参数-要推送的对象

比如说

combinedArr.push({getOfferCode,getRoomCode,getTitle});
另外,您的
每个
只获取第一个条目,因为您只有一个包装器。您必须循环查看
。列表项

列表项的地图更加优雅

const roomArray=$('.wrapper container div.list-item').map(函数(){
常量offerCode=$(this.attr('data-offer-code');
const roomCode=$(this.attr('data-room-code');
const title=$(this.find('h2').html();
返回{offerCode,roomCode,title}
}).get();
console.log(roomArray)

标题1
标题2
标题3

推动物体;你可以去掉var。另外,我认为您需要一个箭头函数来从外部范围访问“this”

$('.wrapper-container').each(() -> {
    combinedArr.push({
        offerCode: $(this).find('.list-item').attr('data-offer-code'),
        roomCode: $(this).find('.list-item').attr('data-room-code'),
        title: $(this).find('.list-item h2').html()
    });
});

您可以在包装器元素中循环div,并使用attr()获取属性值

然后用这些值构建一个对象,并将其推送到combinedArr数组中

var getOfferCode;
var-getRoomCode;
var-getTitle;
var combinedArr=[];
$('.wrapper container>div')。每个(函数(){
getOfferCode=$(this.attr(“数据提供代码”);
getRoomCode=$(this.attr(“数据室代码”);
getTitle=$(this.children('h2').html();
常量对象={
offerCode:getOfferCode,
roomCode:getRoomCode,
标题:getTitle,
}
组合推力(obj);
});
console.log(combinedArr)

标题1
标题2
标题2

在每次迭代中,将所有3个值(offerCode、roomCode和title)作为对象推送到数组中

var combinedArr=[];
$(文档).ready(函数(){
$('.wrapper container').find('.list item').each(function(){
组合推力({
报价代码:$(this.attr('data-offer-code'),
房间代码:$(this).attr('data-room-code'),
标题:$(this.find('h2').html()
});
});
console.log(combinedArr);
//另一种使用map函数的方法
let result=$('.wrapper container').find('.list item').map(函数(){
返回{
报价代码:$(this.attr('data-offer-code'),
房间代码:$(this).attr('data-room-code'),
标题:$(this.find('h2').html()
}
});
log(result.get());
});

标题1
标题2
标题2

什么是不带任何参数的
.push()
调用(
combinedArr.push()
)?@Andreas已更新。谢谢
combinedArr
roomArray
?有什么区别?这不会更好,因为OP只循环一次。请参阅以获得正确的实现我真的根本看不到您的答案:)除了一些语法差异外,看起来是一样的。我想展示一下如何使用
每个
(以及显式数组形式)和
映射
。尽管如此,这与我之前的回答是一样的,希望在按下ITHMM之前创建一个对象,idk,但可能是因为你试图强迫事情发生,批评其他答案,而不是让它发生。因为我在这方面投入了时间,给出了最好的答案。在我的评论之后,你们要么改进了你们的答案,要么删除了它。所以我不称之为力,事实如此。你有这么多的代表,你应该知道这一点。在我看来,我经常有一个更好的答案,但它不会被接受,就是这样。但是没有理由像你一样为接受而斗争。我通常只是顺其自然。但我不仅把OP的问题改成了a,而且先用更好的答案回答了。更令人恼火的是,如果他们从一开始就一模一样