【问题标题】:Jquery Returing HTML as a object or arrayJquery将HTML作为对象或数组返回
【发布时间】:2012-03-22 12:37:51
【问题描述】:

所以我有一个包含大约 20 个 div 的 html 文档,其中包含“事件”类。

rows = $(data).filter('.event');
alert(rows.length); //returns 20
alert(rows.html()); // only returns first result

我想要做的是在一个对象或数组中获取 html,这样我就可以循环遍历,并且每第三个在它们周围包裹一个 div,问题是 rows.html() 只返回第一个结果,但 rows.length 是正确。

如有任何帮助,我们将不胜感激。

【问题讨论】:

    标签: jquery html filter get


    【解决方案1】:

    您可以使用 map() 从元素的 HTML 内容构建一个数组:

    var htmlContentArray = rows.map(function() {
        return $(this).html();
    }).get();
    

    但是,如果您只想换行每三行的内容,您可以简单地将wrapInner():nth-child() 选择器一起使用:

    $(data).filter(".event:nth-child(3n)").wrapInner("<div></div>");
    

    【讨论】:

      【解决方案2】:

      你可以使用:

      rows.each(function(index, element)) {
        // Your code goes here
        alert($(this).html());
      });
      

      为了迭代 jQuery 集合的每个元素。

      【讨论】:

        【解决方案3】:

        如果你将$( ) 包裹在它周围,jQuery 会尝试转换/解释 html 代码,因此请尝试使用$(rows.html())。 然后迭代:

        $.each(rows, function(index, value) {
            // Code here
        }
        

        【讨论】:

          【解决方案4】:

          rows 是数组,所以你应该迭代

          for(var i=0; i<rows.length(); i++){
           rows[i].html();
          }
          

          【讨论】:

            【解决方案5】:

            试试这个功能:

            var arr = jQuery.map(rows, function (item) { 
              return $(item).html(); 
            });
            

            【讨论】:

              猜你喜欢
              • 2011-10-23
              • 1970-01-01
              • 2014-05-20
              • 2013-03-26
              • 2019-04-25
              • 1970-01-01
              • 1970-01-01
              • 2013-01-31
              • 1970-01-01
              相关资源
              最近更新 更多