使用jquery从ulli创建对象数组

使用jquery从ulli创建对象数组,jquery,html,arrays,html-lists,Jquery,Html,Arrays,Html Lists,我正在尝试使用jQuery从ulli标记创建对象的数组。不幸的是,我不能做到这一点。我在下面粘贴我的代码 var photos = []; $( "#sliderContent li" ).each(function() { var title = $(this).find(".title").html(); var image = $(this).find(".image".html()); var url = $(this).find(".url").html(); var

我正在尝试使用
jQuery
ulli
标记创建
对象的数组。不幸的是,我不能做到这一点。我在下面粘贴我的代码

var photos = [];
$( "#sliderContent li" ).each(function() {

  var title = $(this).find(".title").html();
  var image = $(this).find(".image".html());
  var url = $(this).find(".url").html();
  var firstline = $(this).find(".firstline").html();
  var secondline = $(this).find(".secondline").html();

  var slide = new Object();
  slide.title = title;
  slide.image = image;
  slide.url = url;
  slide.firstline = firstline;
  slide.secondline = secondline;
  photos.push(slide);
});
我的HTML列表
ulli

<ul id="sliderContent" >
    <li>
        <div class="title">Stairs 1</div>
        <div class="image">vacation.jpg 1</div>
        <div class="url"># 1</div>
        <div class="firstline">Amazing Apartment for Rent in JBR 1</div>
        <div class="secondline">
            <div class='row'>
                    <div class='col1'>ABD 1</div>
                    <div class='col2'>EFG 1</div>
            </div>
            <div class='row'>
                <div class='col1'>ABD 1</div>
                <div class='col2'>EFG 1</div>
           </div><div class='row'>
            <a class='view' href='#'></a>
            <a class='arrange' href='#'></a>
           </div>
       </div>
    </li>
</ul>
请告诉我哪里出了问题,以及如何查看阵列
照片的内容来检查结果

任何帮助都将不胜感激

您可以执行
警报(JSON.stringify(照片))以查看结果对象

你需要改变

var slide = new Object();


此外,我无法理解您是如何从html中推断出“secondline”的,而我们在这里,作为对gurvinder372答案的响应,您也可以创建如下对象:

var slide = {
    title: title,
    image: image,
    url: url,
    firstline: firstline,
    secondline: secondline
};
var photos = $('#sliderContent li').map(function(index, liItem) {
    var $liItem = $(liItem);

    return {
        title: $liItem.find('.title').html(),
        image: $liItem.find('.image').html(),
        url: $liItem.find('.url').html(),
        firstline: $liItem.find('.firstline').html(),
        secondline: $liItem.find('.secondline').html()
    };
});
而不是您的原始版本:

  var slide = new Object();
  slide.title = title;
  slide.image = image;
  slide.url = url;
  slide.firstline = firstline;
  slide.secondline = secondline;
编辑: 现在,我花了更多的时间。。。在这种情况下,可以使用jQuery.map函数,如下所示:

var slide = {
    title: title,
    image: image,
    url: url,
    firstline: firstline,
    secondline: secondline
};
var photos = $('#sliderContent li').map(function(index, liItem) {
    var $liItem = $(liItem);

    return {
        title: $liItem.find('.title').html(),
        image: $liItem.find('.image').html(),
        url: $liItem.find('.url').html(),
        firstline: $liItem.find('.firstline').html(),
        secondline: $liItem.find('.secondline').html()
    };
});

记住,只有当dom准备就绪时才调用此代码(因此列表
sliderContent
存在)。如果您不知道jQuery.map函数,请查看它的文档:

可能只是输入错误。。。但是在这一行中,
var image=$(this.find(“.image.html())你的偏执论错了。是的。这帮助我度过了难关。谢谢你,伙计,你让我度过了美好的一天:)很酷,从来都不知道jQuery有这样的映射功能。