2

ID を持つ 5 つの Div があります - #C1、#C2、#C3、#C4、#C5

セレクターを使用してすべての [consecutive]id を一度に選択できる方法はありますか?

私が今できることは次のとおりです。

 $('#C1,#C2,#C3,#C4,#C5').css({ SOME CSS });

ID が連続している場合に選択する他の方法はありますか?

1から5までのIDを選択したい。

前もって感謝します..

4

5 に答える 5

4

class最も簡単な解決策は、要素に a を割り当て、<div>それをセレクターとして使用することです。

<div id="C1" class="selectMe"> ... </div>
<div id="C2" class="selectMe"> ... </div>
<div id="C3" class="selectMe"> ... </div>

次に簡単に:

$('div.selectMe').css({ ... });
于 2013-06-07T08:53:14.997 に答える
3

のように試すことができます

$("div[id^='C']").css({ SOME CSS });

「^」は、「C」で始まる div ID を表し、CSS 用に選択します

上記は、IDが「C」で始まるすべてのdivを選択しますまたは、5つだけを選択したい場合は、次のように試すことができます

for(var i = 1 ; i < 6 ; i++) {
     $("#C"+i).css({SOME CSS});
}
于 2013-06-07T08:43:19.253 に答える
1

そのようなセレクターを使用してください

$('[id^=C]').filter(function(i, v){
    return !isNaN(v.id[1]);
}).css({ SOME CSS })

Demo

于 2013-06-07T08:43:20.693 に答える
1

正確に何を達成しようとしているのかはわかりませんが、これらの要素に CSS ルールを適用しようとしているのを見ると、ID で複数の要素をターゲットにすることは正しいことではないかもしれません。

複数の要素をターゲットにしようとしている場合は、クラスを使用する必要があります。同じ種類の要素は通常、CSS ルールのクラスを既に共有しているため、これはうまく機能します。

したがって、要素にクラスを追加してから変更する必要があります。

$('#C1,#C2,#C3,#C4,#C5').css({ SOME CSS });

$('.class').css({ SOME CSS });

連続した ID 番号を持つ DOM 要素を取得したい場合は、次のようにします。

function getConsecutiveID(prefix){

    prefix = '#'+prefix;
    var stop = false;
    var selectors = [];
    var i = 1;
    while(!stop){
        if($(prefix+i).length>0){
            selectors.push(prefix+i);
        }else{
            stop =true;
        }
        i++;
    }
    return $(selectors.join(','));

}
getConsecutiveID('C').css({ SOME CSS });
于 2013-06-07T09:15:01.673 に答える
0

配列にすでに数値がある場合は、次のようにしてこれを行うことができますArray.reduce

$all = [1, 2, 3, 4].reduce(function(jq, i) { return jq.add("#c" + i); }, $());

実際に見てください

これは IE < 9 ではネイティブに使用できませんが、MDN ページには使用できるポリフィルがあります。

于 2013-06-07T08:54:27.917 に答える