简单的增量方式

时间:2012-07-25 04:05:02

标签: javascript jquery

$("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]]类似的东西。什么是正确的语法?

非常感谢

6 个答案:

答案 0 :(得分:8)

您可以使用attribute starts with selector

a[rel^="example_"]

这将选择具有以“example_”开头的a属性的所有rel元素。如果你想选择与该模式匹配的所有元素,我建议使用over循环。

答案 1 :(得分:5)

如果对你好 - 你可以选择

$('a[rel^="example_"]').

它将匹配arel开头的所有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({});