找到没有样式的div显示none,并在每个第二个div上插入一个分页样式

时间:2012-09-27 11:29:30

标签: javascript jquery

最初所有div都具有样式显示无属性。我通过jquery show方法启用div,如果里面有任何内容, 我想找到没有样式显示的div:none,并且每隔一个活动div后, 我想为page-break-after插入一个css:总是用于打印目的。我想在用户打印时在一个页面中只有2个div。 所以在这个例子中,我想在par4和par8

上插入用于分页符的css

(简而言之,找到没有样式的div显示none并在每秒div上插入一个分页样式)

<div id="parent">
<div class="flip" id="par1" style="display:none;">empty</div>                     
<div class="flip" id="par2">Image/content</div>                           
<div class="flip" id="par3" style="display:none;">empty</div>                       
<div class="flip" id="par4">Image/content</div>                            
<div class="flip" id="par5" style="display:none;">empty</div>                        
<div class="flip" id="par6">Image/content</div>                         
<div class="flip" id="par7" style="display:none;">empty</div>                             
<div class="flip" id="par8">Image/content</div>                                             
<div class="flip" id="par10" style="display:none;">empty</div> 
</div>

3 个答案:

答案 0 :(得分:3)

下面:

$( '#parent' ).children( ':visible:odd' ).css( 'page-break-after', 'always' );

现场演示: http://jsfiddle.net/KxGKG/2/

虽然我建议设置一个CSS类,而不是内联样式。设置/取消设置类比直接设置样式更容易。

答案 1 :(得分:1)

也许这可以帮助你,但CSS不是更好的解决方案吗?

$(function() {
    $(".flip:nth-child(even)").css({ 'page-break-after': 'always' });
});

答案 2 :(得分:1)

jQuery:带有每个循环的可见选择器都可以实现。

$('.flip:visible').each(function(idx, elm) {
    if(idx & 1 == 1) { // every 2nd one
        $(this).css('page-break-after', 'always');
    }
});

修改 第n个(偶数)选择更优雅(和短代码)。