选择多个但不是所有HTML类

Selecting multiple, but not all HTML classes

本文关键字:HTML 选择      更新时间:2023-09-26

所以假设我想用特定类的CSS隐藏div或span。

有没有针对前X个实例这样做,或者更好的是,针对除最后一个实例之外的所有实例这样做?我想这需要javascript。

伪代码我想看起来像这个

if divname.class = "XYZ" {
select all instances -1
execute code that inserts random programmatic id into each class
execute code that hides all ids except the last one
}

我走对了吗?或者有什么更简单/更好的方法吗?

如果你能使用jQuery及其漂亮的伪选择器,你可以做一些类似的事情

$('.question-summary:not(:last)')

您可以在SO主页上进行测试。

,你可以这样做

var class_div = document.getElementsByClassName("class_name");
var i =0;
for(i=0;i<class_div.length-1;i++){
  //do whatever you want with class_div[n-1] elements.
}

我不确定如何使用jquery实现这一点,但这是javascript的一个可能的解决方案。

如果您使用的是jQuery。。。

$('.class_name').hide().last().show();

给你-http://jsfiddle.net/uUK6G/

将所有div设置为同一类。然后使用jQuery过滤掉最后一个。

$('.myDiv').filter(':not(:last)').hide();​

您可以使用CSS中的:last子选择器来执行此操作。

http://www.w3schools.com/cssref/sel_last-child.asp

对于第一个X个实例,是否有这样的操作,或者更好的是,除了最后一个,为所有人做这件事吗?我想是这样的将需要javascript。

你可以试试:

var elms = document.getElementsByClassName('XYZ'), total = elms.length;
for (var i = 0; i < total; i++){
   elms[i].style.display = 'none';
}

在上面的循环中,i将包含每个元素的索引,您可以放置条件或范围来指定要删除的元素。例如,如果您想隐藏除最后一个之外的所有内容,您可以将其修改为:

for (var i = 0; i < total - 1; i++){
   elms[i].style.display = 'none';
}