获取最后一个className但不是指定的className

时间:2015-04-30 12:02:03

标签: javascript jquery

我已经用Google搜索了这个问题,但实际上并没有找到任何帮助。

我的div有3个班级。我想得到最后一个className但不是我指定的那个。

E.x第三是div中的最后一个类,但我不希望选择它,除非在这种情况下我想要选择第二个最后一个。

到目前为止,我已经尝试了

 $('div:not(.third)').attr('class').split(' ').pop();//Throwing Type Error

$('div').attr('class').split(' ').pop().not(".third");//.not is not a function

我已经做了一个简单的小提琴如果有任何好友可以帮助我。

由于

https://jsfiddle.net/h67zhLzL/

3 个答案:

答案 0 :(得分:1)

pop()确实删除了最后一个元素,但它也返回了被删除的元素。您只需要访问原始数组:

$("button").on("mouseenter",function(){
    var arr = $("div").attr('class').split(' '); // Split the class into the array
    arr.pop(); // Remove the last element
    // Make sure we're left with at least one class
    if(arr.length) console.log(arr[arr.length-1]);  // Prints "second"
});

Working Example

答案 1 :(得分:1)

如果我说得对,你想得到一个数组的最后一项,除了它有你之前指定的值:

var classes = $("div").attr('class').split(' ');
classes.pop();
var index = classes.indexOf('third');
if(index > -1){        
    classes.splice(index, 1);
}
var lastclass = classes.pop();

<强> Demo

<强>参考

.indexOf()

.splice()

答案 2 :(得分:0)

如果我理解正确,这是你的解决方案。

$("button").on("click",function(){
    var arr = $("div").attr('class').split(' ');

    alert(arr[arr.length -2]); 
});

https://jsfiddle.net/g495r038/1/