3
$("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]]ます。正しい構文は何ですか?

どうもありがとう

4

6 に答える 6

8

セレクターで始まる属性を使用できます

a[rel^="example_"]

これにより、「example_」で始まる属性をa持つすべての要素が選択されます。relそのパターンに一致するすべての要素を選択する場合は、このオーバーループをお勧めします。

于 2012-07-25T04:08:44.460 に答える
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

于 2012-07-25T04:08:35.487 に答える
4

考えられる解決策の1つは、ループを使用することです。

var element = 'a[rel=example_';
var elements = [];

for(var i = 1; i <= 10; i++){
    elements.push(element + i.toString() + ']');
}

elements = elements.join(', ');

$(elements).fancybox()

rel または、すべての要素を「example_」を含むものと一致させたい場合は、次のような属性セレクターを使用できます。

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

最後に、クラスを使用してすべての要素をリンクし、共通のクラスを参照してそれらを選択するだけです。

于 2012-07-25T04:08:34.147 に答える
2

forまたはwhileループを使用します。繰り返すたびに、カウンター変数に1を追加します。または、forループを使用する場合は、それ自体でそれを行います。

ここにいくつかの擬似コードがあります:

var output

for count 1 to 10:

output .= $("a[rel='example'" + count];

next for
于 2012-07-25T04:07:47.030 に答える
1

このセレクターを使用して、「example_」で始まるすべての要素を選択できます。

$('a[rel^=example_])
于 2012-07-25T04:09:17.007 に答える
0

クエリとして使用する文字列を生成できます。

var query = [];
for(var i=1;i<=10;i++)
    query.push('a[rel=example_' + i + ']');
$(query.join(',')).fancybox({});
于 2012-07-25T04:09:23.213 に答える