我只是真的开始使用这个网站,而且我对这里的社区印象非常深刻! 这是我在不到三天的时间内提出的第三个问题。希望我能尽快开始回答问题,而不仅仅是问问他们!
我是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' ];
哪个是正确的,我如何在我的标签的代码中使用数组......?
答案 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 */
});