测试未定义变量/或NEXT兄弟姐妹的最佳方法是什么?

时间:2015-07-06 10:17:45

标签: jquery css next

我想在jQuery中使用.next()测试特定div是否在其后面有另一个div。如果它之后有另一个div,那么我想调整一些CSS。

我目前正在检查.next() div的CSS,如果它不是undefined,那么继续CSS更改,但我不认为这是一个非常可靠的方式。

var hasNext = $('.slide.active').next().attr('class'); // check the class of the "next" element

if(hasNext !== 'undefined'){
   // There is another slide! Add some arrows
   $('.portfolio .fp-controlArrow.fp-next').css('display','block');
}

首先,这不起作用(尽管console.log显示hasNext = undefined上述if语句正在传递。

其次,我知道这是一种笨拙的做事方式。

那你怎么做?基本上:

if (slide with class `active` has a NEXT sibling){
    do this css
}

2 个答案:

答案 0 :(得分:3)

只需检查.next()返回的对象的长度,如果没有下一个兄弟,它将为0

var hasNext = $('.slide.active').next().length; // check the class of the "next" element

if (hasNext) {//check for truthyness
    // There is another slide! Add some arrows
    $('.portfolio .fp-controlArrow.fp-next').css('display', 'block');
}

答案 1 :(得分:1)

应该是:

if (typeof hasNext !== 'undefined')