我有一个带有 ID 的 5 个 Div - #C1、#C2、#C3、#C4 和 #C5
有什么方法可以让我使用选择器一次选择所有 [连续] id?
我现在能做的就是:
$('#C1,#C2,#C3,#C4,#C5').css({ SOME CSS });
当ID是连续顺序时,还有其他方法可以选择吗?
我想从 1 到 5 中选择 ID。
提前致谢..
我有一个带有 ID 的 5 个 Div - #C1、#C2、#C3、#C4 和 #C5
有什么方法可以让我使用选择器一次选择所有 [连续] id?
我现在能做的就是:
$('#C1,#C2,#C3,#C4,#C5').css({ SOME CSS });
当ID是连续顺序时,还有其他方法可以选择吗?
我想从 1 到 5 中选择 ID。
提前致谢..
最简单的解决方案是将 a 分配class
给<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});
}
我不确定您到底想要完成什么,但看到您正在尝试将 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 页面有一个您可以使用的 polyfill。