ID を持つ 5 つの Div があります - #C1、#C2、#C3、#C4、#C5
セレクターを使用してすべての [consecutive]id を一度に選択できる方法はありますか?
私が今できることは次のとおりです。
$('#C1,#C2,#C3,#C4,#C5').css({ SOME CSS });
ID が連続している場合に選択する他の方法はありますか?
1から5までのIDを選択したい。
前もって感謝します..
ID を持つ 5 つの Div があります - #C1、#C2、#C3、#C4、#C5
セレクターを使用してすべての [consecutive]id を一度に選択できる方法はありますか?
私が今できることは次のとおりです。
$('#C1,#C2,#C3,#C4,#C5').css({ SOME CSS });
ID が連続している場合に選択する他の方法はありますか?
1から5までのIDを選択したい。
前もって感謝します..
class
最も簡単な解決策は、要素に a を割り当て、<div>
それをセレクターとして使用することです。
<div id="C1" class="selectMe"> ... </div>
<div id="C2" class="selectMe"> ... </div>
<div id="C3" class="selectMe"> ... </div>
次に簡単に:
$('div.selectMe').css({ ... });
のように試すことができます
$("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});
}
そのようなセレクターを使用してください
$('[id^=C]').filter(function(i, v){
return !isNaN(v.id[1]);
}).css({ SOME CSS })
正確に何を達成しようとしているのかはわかりませんが、これらの要素に 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 });
配列にすでに数値がある場合は、次のようにしてこれを行うことができますArray.reduce
。
$all = [1, 2, 3, 4].reduce(function(jq, i) { return jq.add("#c" + i); }, $());
これは IE < 9 ではネイティブに使用できませんが、MDN ページには使用できるポリフィルがあります。