不能在jquery的每个函数中使用来自$ this的.next()

时间:2013-08-29 08:02:12

标签: jquery each

我正在尝试确定元素高度是否超过55.如果是这种情况,包装div将折叠为55px并且应出现“Read-more”链接。

问题是dom navigator .next()和.hide()在我的每个函数中都不起作用。我正在获得元素的高度,我正在将它们记录到控制台并获得不同的值即可。但是,当我使用IF语句来隐藏.read-more链接时,这些链接从较小的元素开始就不起作用。

这是我的小提琴http://jsfiddle.net/eKDUe/,我完全迷失了。我希望有人可以提供帮助!

readMore.prev('p').each(function( index ) {

var deg = $(this).height();
console.log(deg);
if (deg < 55 ){
  var  as = $(this);
  var as2 = as.next();
console.log(as2);      
}
});


readMore.on('click', function(){
 $this = $(this);
var current = $this.prev();
console.log(current);
  if(current.height() < 55){

      current.css('height', 'auto');
     $this.html('Dölj');
   }else{
    current.css('height', '53px');
    $this.html('Läs mer');
   }
});

1 个答案:

答案 0 :(得分:1)

尝试一下glike

readMore = $('.read-more').hide()
readMore.filter(function(){
    return $(this).prev().height() > 55;
}).show()

演示:Fiddle