1

画像のキャプションを生成する jquery スクリプトがあります。しかし、キャプション付きの要素を数えて、適切な数をクラスとして画像クラスに追加したいと思います。(.length) を数える方法は知っていますが、すべての要素から適切な数を使用するにはどうすればよいですか?

http://jsbin.com/ugemih/6/edit#javascript,html,live

ブラジル

4

4 に答える 4

5

渡された関数に変数を渡すとeach()、現在の要素の番号が保持されます。

$('.foo').each(function (i) {
    $(this).addClass('foo-' + i);
});
于 2012-07-03T12:46:01.513 に答える
0

css を使用できない理由はありますか? 疑似セレクタ、nth-child があります。

a:nth-child(1){color: #123;}
a:nth-child(2){color: #456;}
a:nth-child(3){color: #789;}

等々。

Selectivizrを使用すると、IE6 から 8 でこれが機能します。その後、nth-child がサポートされます。つまり、よりスマートな標準ベースの css を今すぐ書き始めることができ、スクリプトによって IE で動作するようになります。

必要に応じてすべてを javascript で行うこともできますが、スタイルの適用には css を使用する必要があります。javascript を使用してクラスを追加する代わりに css を使用することができれば、サイトはより効率的になり、保守が容易になります。

于 2012-07-03T12:56:37.010 に答える
0

要素のクラスを設定するだけなら、jQuery の有無にかかわらず非常に簡単ですjQuery .attr()関数をすばやく使用すると、任意のクラス、つまりクラスを変更できます。

$("[div to change]").attr("class", "[class_name]" + [number]);

ここでは を に設定しclassました[class_name][1,2,3...]。したがって、 wasと[class_name]wereの場合、をに設定します。hello[number]5classhello5

別の方法として、オブジェクトに a を追加したい場合class(適切なスタイルを維持したまま)、jQuery の.addClass()関数を使用できます。

$("[div to change]").addClass("[class_name]" + [number]);

これにより、同様の名前classの がオブジェクトに追加されます。

于 2012-07-03T12:53:36.870 に答える
0

クラス名を動的に変更することは、この方法で実現できます。

$('.test').each(function (e) { 
    $(this).addClass('test_' + e); 
}); 
于 2012-07-03T12:48:56.523 に答える