jQuery数组 - 新手需要一脚启动

时间:2010-05-26 07:31:26

标签: jquery arrays

我只是真的开始使用这个网站,而且我对这里的社区印象非常深刻! 这是我在不到三天的时间内提出的第三个问题。希望我能尽快开始回答问题,而不仅仅是问问他们!

我是jQuery的新手,无法在Arrays上找到一个不错的教程。 我希望能够在我的页面上创建一个针对多个ID的数组,并为每个ID执行相同的效果。

例如,我设置了以下选项卡:

$('.tabs div.tab').hide();
        $('.tabs div:first').show();
        $('.tabs ul li:first a').addClass('current');
        $('.tabs ul li a').click(function(){
            $('.tabs ul li a').removeClass('current');
            $(this).addClass('current');
            var currentTab = $(this).attr('href');
            $('.tabs div.tab').hide();
            $(currentTab).show();
            return false;
        });

我已经使用类.tag来定位标签,因为在同一页面上有几个集合,但我听说jQuery在定位ID的时候工作得更快

如何在上面的代码中添加一个数组来定位4个不同的ID? 我看了

var myArray = new Array('#id1', 'id2', 'id3', 'id4');

var myValues = [ '#id1', 'id2', 'id3', 'id4' ];

哪个是正确的,我如何在我的标签的代码中使用数组......?

4 个答案:

答案 0 :(得分:2)

首先,您需要做的是区分JavaScript(语言)和jQuery(框架库)。

Arrays是JavaScript语言的一个特性,jQuery与Arrays几乎没什么关系,除了在这里和那里使用它作为数据结构。

另外我怀疑使用数组/ ID列表比使用类更快,恕我直言将是更清洁的解决方案。

然而你可以这样做:

您可以遍历包含ID的字符串数组,并为每个字符串重复代码块,而不是引用该类。像这样:

$.each(['#id1', '#id2', '#id3', '#id4' ], function(id) {
  $(id + ' div.tab').hide();
  $(id + ' div:first').show();
  $(id + ' ul li:first a').addClass('current');
  $(id + ' ul li a').click(function(){
     // etc.
  });
});

然而,使用这个类(如我所提到的)更清晰,也可能更容易,因为这样你只需要将代码“删除”到页面中它就可以完成它而不需要担心可能会改变每页的ID列表。

答案 1 :(得分:1)

在选择器中使用逗号。例如:

$('#id1, #id2, #id3, #id4').hide();

这里不需要显式数组。但请注意,在JavaScript中,

new Array('a', 'b', 'c', 'd')

['a', 'b', 'c', 'd']

意思相同。

答案 2 :(得分:1)

你的意思是你想要一个包含许多ID的选择器吗?

喜欢:

$('#id1,#id2,#id3,#id4').hide() 

或者你真的想从数组中创建选择器吗?你也可以这样做

var myArray = new Array('#id1', '#id2', '#id3', '#id4');

$(myArray.join()).hide();

希望有所帮助

答案 3 :(得分:0)

您可以在此使用$.each

$.each(['id1', 'id2', 'id3', 'id4' ], function() {

    /* whatever you want to do with each item. 
       this will reference the item in the current iteration */

});