2015-07-21 108 views
2

有人可以帮我以下吗?我是jquery的新手,你的帮助将会非常感激。如果窗口的宽度小于768像素,我需要为div.cenik的最后一个子项附加一个ID?谢谢你的帮助。追加一个ID到div里面的最后一个div

<div class="cenik"> 
    <div>bla bla</div> 
    <div>bla bla</div> 
    <div>bla bla</div> 
    <div>bla bla</div> <-- this should get the ID--> 
</div> 

我的代码(什么是错的):

(function($) {$(document).ready(function(){ 
if ($(window).width() < 768) { 
    $('.cenik').children().last(function(i) { 
    $(this).attr('id', 'cenik'); 
}); 
} 
});})(jQuery); 
+0

这听起来像一个XY问题,你为什么会需要一个ID添加到这个DIV? –

+0

@ A.Wolff,也许他有一个风格在css针对该ID? – AmmarCSE

+1

@AmmarCSE但是,他应该使用CSS媒体查询我猜。这真的取决于在这里使用ID的目的是什么 –

回答

3

这是固定码:

(function ($) { 
    $(document).ready(function() { 
     if ($(window).width() < 768) { 
      $('.cenik').children().last().attr('id', 'cenik'); 
     } 
    }); 
})(jQuery); 

这是说,那里是它应该怎么做,我想:

(function ($) { 
    $(window).on('load resize', function() { 
     if (window.matchMedia("(max-width: 768px)").matches) { 
      $('.cenik').children().last().attr('id', 'cenik'); 
     } 
    }); 
})(jQuery); 
0

不要传递一个回调函数

(function($) { 
     $(document).ready(function() { 
      if ($(window).width() < 768) { 
       $('.cenik').children().last().attr('id', 'cenik'); 
      } 
     }); 
    })(jQuery); 

或者,您可以使用:last

(function($) { 
    $(document).ready(function() { 
     if ($(window).width() < 768) { 
      $('.cenik div:last').attr('id', 'cenik'); 
     } 
    }); 
})(jQuery); 
2

这一定是你的解决方案

HTML

<div class="cenik"> 
    <div>bla bla</div> 
    <div>bla bla</div> 
    <div>bla bla</div> 
    <div>bla bla</div> <-- this should get the ID--> 
</div> 

jquery

(function($) {$(document).ready(function(){ 
if ($(window).width() < 768) { 
    $('.cenik > div:last').attr("id","cenik") 
}; 
} 
)})(jQuery); 

直播: https://jsfiddle.net/23kbt25s/