很明显,我不了解jquery的基本内容,因为我甚至不确定该怎么称呼它。我会冒''wrap-set',现在就会使用这个术语。
我的场景:使用jquery Isotope作为顶部字母按钮A-Z的语言字典。
<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(); (空,删除)和编号如预期的那样:0,1,2 ......
问题:
1)我假设从0,1,2 ...包裹集是一个数组?我理解固有的迭代,但总的来说是有效的。是否可以隔离特定的字母集,数组子集;说'C',例如:字母[2]或.element [0] [2] - 或者其他一些?
2)如果包装集是累积的,那么如何测试是否已加载特定的字母集并避免每次单击字母时加载ajax?这让我想到,“为什么不在加速时加载所有数据?” - 假设我可以在点击上抓一个字母集,如上面的1)?我猜这个第一级A-Z演示文稿总共会有大约800kb的数据。不是那么大。两个问题? 2a 2b
我用谷歌搜索,搜索了我所拥有的两本书,并且通常划伤了各种各样的身体部分但是一切似乎与固有的迭代,一个数据块有关。我很抱歉,如果这一切都过度徘徊,但希望你能给我一些指导或进一步梳理我的想法,或者给我一些关键词或jquery函数,我可以研究。我需要个东西。一个新的爱好:)我渴望学习所以任何指导将不胜感激。非常感谢你们已经阅读过这篇文章了。
答案 0 :(得分:1)
是的,这个DOM查询的结果是一个jQuery包含的匹配元素数组,并且数组元素的顺序基于DOM中每个元素的位置。如果要过滤返回的数组,可以使用jQuery的.filter()
方法。要检查特定元素是否存在,可以使用.length
属性。
对于自动发布返回的集合,您可以使用console.log()
/ console.dir()
。
答案 1 :(得分:1)
jQuery将根据您提供的选择器返回结果集。返回的jQuery对象由与提供的选择器匹配的DOM元素数组支持。
您可以(并且应该在使用Isotope时)为元素分配其他类以帮助选择。它没有 成为类 - Isotope将与任何jQuery选择器一起使用,但基于类的选择器将更有效。这也是Isotope Documentation中使用的一般方法。
例如,在a
集中添加元素时,请将类a
指定给它。
生成的HTML看起来像这样:
<div id="container">
<div class="element a">…</div>
<div class="element a">…</div>
<div class="element b">…</div>
<div class="element b">…</div>
…
</div>
测试是否已加载集合然后变得如此简单:
if($('.a').length) // if truthy (non-zero) this set is loaded