$("a[rel=example_1],a[rel=example_2],a[rel=example_3],a[rel=example_4],a[rel=example_5],a[rel=example_6],a[rel=example_7],a[rel=example_8],a[rel=example_9],a[rel=example_10]").fancybox({............
你好,现在我必须手动输入这些代码。
有没有简单的方法来增加数字?
我知道我可以使用与a[rel=example_[1-10]]
类似的东西。什么是正确的语法?
答案 0 :(得分:8)
您可以使用attribute starts with selector
a[rel^="example_"]
这将选择具有以“example_”开头的a
属性的所有rel
元素。如果你想选择与该模式匹配的所有元素,我建议使用over循环。
答案 1 :(得分:5)
如果对你好 - 你可以选择
$('a[rel^="example_"]').
它将匹配a
以rel
开头的所有example_
否则 - 使用精细过滤:
$('a[rel^="example_"]').filter(function() {
var match = $(this).prop('rel').match(/^example_(\d+)$/);
return match.length == 2 && parseInt(match[1]) <= 10;
})
.filter()
的回调明确检查下划线后是否有1..10
答案 2 :(得分:4)
一个可能的解决方案是使用循环。
var element = 'a[rel=example_';
var elements = [];
for(var i = 1; i <= 10; i++){
elements.push(element + i.toString() + ']');
}
elements = elements.join(', ');
$(elements).fancybox()
或者,如果您希望将所有元素与包含“example_”的rel
匹配,则可以使用如下属性选择器:
$('a[rel*="example_"]').fancybox()
最后,您可以简单地使用一个类来链接所有元素,并通过引用公共类来选择它们。
答案 3 :(得分:2)
使用for或while循环。每次迭代时都会将一个加到计数器变量上,或者如果你使用for循环,它会自己做。
下面是一些伪代码:
var output
for count 1 to 10:
output .= $("a[rel='example'" + count];
next for
答案 4 :(得分:1)
您可以使用此选择器选择以“example_”开头的所有元素:
$('a[rel^=example_])
答案 5 :(得分:0)
您可以生成要用作查询的字符串:
var query = [];
for(var i=1;i<=10;i++)
query.push('a[rel=example_' + i + ']');
$(query.join(',')).fancybox({});