【问题标题】:jQuery/JavaScript equivalent of each() for a single element?单个元素的每个()的jQuery / JavaScript等价物?
【发布时间】:2011-08-22 18:57:37
【问题描述】:

谁能告诉我如何更新以下代码以获取对象(数据)中返回的第一项?我知道只对一项使用 each() 效率不高,我想改进它。

$(data).each(function(num, entry){
    if ( num > 1 ) return false;
});

以下是data 的示例:

[
    {
        "id": 1,
        "title": "My post",
        "permalink":"http:\/\/site.com\/page.html\/",
        "date":" 2011-05-10 
    }
]

【问题讨论】:

    标签: javascript jquery json each


    【解决方案1】:

    更新 2:

    由于data 只是一个数组(我假设JSON 已经被解析(如果没有你可以使用jQuery.parseJSONJSON.parse)),你可以通过简单的数组访问获得第一个元素:

    var first = data[0];
    

    Read more about arrays.


    旧答案:

    试试

    $(data).first()      // returns jQuery object
    // or
    $(data).eq(0)        // returns jQuery object
    // or 
    $(data).get(0)       // returns DOM object
    // or
    $(data)[0]           // returns DOM object
    

    取决于您拥有的数据以及您想要做什么。

    更新:

    如果data 实际上是一个JavaScript 对象,则无需将其传递给jQuery(jQuery 主要用于处理DOM)。

    循环
    for(var prop in data) {
    
    }
    

    但您无法获得“第一个”属性,因为它们是无序的。

    如果是数组,则使用data[0]

    为了帮助你更多,你应该发布data是什么。

    【讨论】:

    • 谢谢!之前,我正在做类似 entry.title、entry.image 等来定义 JSON 数据的属性。我现在如何使用您的一种方法来做到这一点?
    • $(data).first() 返回一个带有单个元素的 jQuery 对象,因此您可以调用它var entry = $(data).first(); 然后entry.title 将返回与原始each 相同的值。
    • @Cofey:如果它是一个对象,那么你应该完全不同。请查看我的更新并发布 data 到底是什么。
    【解决方案2】:

    你可以this:

    $(data).get(0); //same as $(data)[0]
    

    【讨论】:

      猜你喜欢
      • 2016-08-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-08-13
      • 2011-10-15
      • 1970-01-01
      • 1970-01-01
      • 2015-09-27
      相关资源
      最近更新 更多