选择多个但不是所有HTML类

时间:2012-02-24 21:35:06

标签: javascript html css

所以我想说我想用特定类的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
}

我是否在正确的轨道上?或者有更容易/更好的方法吗?

6 个答案:

答案 0 :(得分:1)

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

的事情
$('.question-summary:not(:last)')

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

答案 1 :(得分:0)

  

无论如何,对于前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';
}

答案 2 :(得分:0)

你可以这样做,

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解决方案。

答案 3 :(得分:0)

如果您使用的是jQuery ......

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

答案 4 :(得分:0)

这里你去 - http://jsfiddle.net/uUK6G/

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

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

答案 5 :(得分:0)

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

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