2

很明显,我对 jquery 的一些基本知识并不了解,以至于我什至不知道该怎么称呼它。我会冒险使用“wrapped-set”,现在将使用该术语。

我的场景:使用 jquery Isotope 作为顶部带有字母按钮 AZ 的语言词典。

<div id="container">
    <div class="element"> (say, 100 of these)
        <div class=titlePE></div>
        a few other divs
    </div>
</div>

在我看来,包装集是累积的,因为它将每个新的瓦片集添加到整体中。当我尝试为我的瓷砖编号时,这一点变得很清楚:

$(".letter").click(function() {
    $('.element').each(function(index) { // NUMBERS INCREMENTAL
         $(this).find('.titlePE').before('<p class="number">' + index + '</p>');
    }); 
});

第一个字母集 A: 1, 2, 3... 第二个 B: 100, 101... 等返回 A: 1,2,3... B: 100... 我试过 $( '.element').detach(); (empty, remove) 和编号如预期的那样:0、1、2...

问题:

1)我假设从 0,1,2... 包装集是一个数组?我理解固有的迭代,但这总体上是有效的。是否可以隔离特定的字母集,数组子集;说“C”,例如:letter[2] 或 .element[0][2] - 或类似的?

2)如果包装集是累积的,那么我如何测试是否已加载特定的字母集并避免每次点击字母时加载 ajax?这让我想到,为什么不一开始就加载所有数据呢?- 假设我可以在点击时抓取一个字母集,如上面的 1)?我猜这个一级 AZ 演示文稿总共会有大约 800kb 的数据。没那么大。两个问题?2a 2b

我在谷歌上搜索,翻阅了我拥有的两本书,通常会刮擦身体的各个部分,但一切似乎都与固有的迭代有关,即单个数据块。很抱歉,如果这一切都过度徘徊,但希望你能给我一些方向或进一步梳理我的想法或给我一些我可以研究的关键词或jquery函数。我需要个东西。一个新的爱好:) 我很想学习,所以任何指导都将不胜感激。非常感谢你读到这里。

4

2 回答 2

1

是的,这个 DOM 查询的结果是一个 jQuery 包装的匹配元素数组,并且数组元素的顺序基于每个元素在 DOM 中的位置。如果要过滤返回的数组,可以使用 jQuery 的.filter()方法。要检查特定元素是否存在,可以使用.length属性。

要对返回的集合进行尸检,您可以使用console.log()/ console.dir()

于 2013-09-14T21:57:05.290 回答
1

jQuery 将根据您提供的选择器返回一个结果集。返回的 jQuery 对象由与提供的选择器匹配的 DOM 元素数组支持。

您可以(并且在使用 Isotope 时应该)为您的元素分配额外的类以帮助选择。它不一定类 - Isotope 可以与任何 jQuery 选择器一起使用,但基于类的选择器会更有效。这也是同位素文档中使用的一般方法。

例如,在a集合中添加元素时,将类分配a给它。

生成的 HTML 看起来像这样:

<div id="container">
    <div class="element a">…&lt;/div>
    <div class="element a">…&lt;/div>
    <div class="element b">…&lt;/div>
    <div class="element b">…&lt;/div>
    …
</div>

如果已加载集合,则测试变得如此简单:

if($('.a').length)  // if truthy (non-zero) this set is loaded
于 2013-09-14T21:59:29.213 回答