如何使用jquery获取元素并存储在数组中以供以后使用?
我正在尝试收集一组特定的如何使用jquery获取元素并存储在数组中以供以后使用?,jquery,arrays,Jquery,Arrays,我正在尝试收集一组特定的元素,以便稍后在循环中使用。但是,我似乎没有正确的语法:调试控制台告诉我我的对象未定义。有人能告诉我我做错了什么吗 var all_help_triggers = []; $(".canned-triggers > li").each(function() { all_help_triggers.push($(this)) }); all_help_triggers[0].click(function(){alert('hi!');}) 您可以简单地执行以下操作:
元素,以便稍后在循环中使用。但是,我似乎没有正确的语法:调试控制台告诉我我的对象未定义。有人能告诉我我做错了什么吗
var all_help_triggers = [];
$(".canned-triggers > li").each(function() { all_help_triggers.push($(this)) });
all_help_triggers[0].click(function(){alert('hi!');})
您可以简单地执行以下操作:
// save selected jQuery objects into variable
var all_help_triggers = $(".canned-triggers > li");
// get first element in jQuery object, and assign a click handler
all_help_triggers.eq(0).click(function(){
alert('hi!');
});
编辑(根据附加注释):
要获取索引,请使用
如果你想在页面加载时隐藏一个列表,你应该在CSS中隐藏它。而不是:
$('.canned-content > li').hide();
删除该行并添加此CSS:
.canned-content > li { display: none; }
使用each()时,“this”值指的是它迭代的“每个”元素。因此,您应该尝试这样的方法,而不是使用额外的数组
$(".canned-triggers > li").each(function() {
$(this).click(function( {
alert('hi!')
});
});
刚刚注意到你的评论:
参见小提琴示例:
- heyo1
- heyo2
- heyo3
- 我是heyo content 1
- 我是heyo content 2
- 我是heyo内容3
$('.canned content>li').hide();
$('.cavented triggers>li')。单击(函数(){
var-toggleElement=$(this.data(“元素”);
$(toggleElement.show();
});
您应该检查选择器是否返回任何内容
另外,jQuery集合类似于数组,这意味着您不需要显式地将其转换为数组。。。您可以使用for
循环通过它,而不会出现任何问题
但是,如果仍然需要JavaScript数组,可以使用以下代码:
var all_help_triggers = $.makeArray( $(".canned-triggers > li") );
更多关于
$的文档。makeArray
方法在这里似乎工作正常::修复-谢谢!:)复制粘贴问题:)这很好。不幸的是,当我希望触发器在另一个组中触发其按时间顺序排列的等价物时,我不知道如何在场景中应用此方法,例如:仅应用.each(),是否仍有可能实现此目的?很好,我尝试帮助用户,但没有进一步的评论,我获得了否决票。非常好..eq():完美!然而,现在我尝试在一个循环中应用它,以使每个触发器在另一个列表中按时间顺序触发它的等价项,比如:有什么建议吗?
<ul class="canned-triggers">
<li data-element="#li1">heyo1</li>
<li data-element="#li2">heyo2</li>
<li data-element="#li3">heyo3</li>
</ul>
<ul class="canned-content">
<li id="li1">I'm heyo content 1</li>
<li id="li1">I'm heyo content 2</li>
<li id="li2">I'm heyo content 3</li>
</ul>
$('.canned-content > li').hide();
$('.canned-triggers > li').click(function() {
var toggleElement = $(this).data("element");
$(toggleElement).show();
});
var all_help_triggers = $.makeArray( $(".canned-triggers > li") );