2012-02-24 41 views
0

所以,让我们说我想隐藏一个div或跨度与特定类的CSS。选择多个,但不是所有的HTML类

对于第一个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 
} 

我在正确的轨道上?或者有没有更简单/更好的方法?

+1

是你没有使用JQuery? – RSG 2012-02-24 21:36:44

回答

1

如果你可以使用jQuery和其漂亮的伪选择,你可以不喜欢

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

您可以在主页SO测试。

+0

他没有使用jQuery,也没有关于它的标记:) – Sarfraz 2012-02-24 21:44:48

+0

@Sarfraz:但是,他也没有说不使用它。 – 2012-02-24 21:47:10

+0

没问题,我们目睹了downvotes一个标签没有提到。让我们看看这是否有助于他:) – Sarfraz 2012-02-24 21:49:19

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'; 
} 
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。

0

如果你使用jQuery ...

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

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

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

$('.myDiv').filter(':not(:last)').hide();​ 
相关问题