2016-03-14 2 views
2

Html:JQuery несколько селекторов в функции печати

<div id="firstline"> 
    <div class="col-md-3"> 
     <a href="/"><div id="logo">Flooring</div></a> 
    </div> 
... 
</div> 
<div class="col-md-2"> 
    <ul> 
    ... 
     <li> 
     <button id="printall"><b class="fa fa-print"></b> Print</button> 
     </li> 
    </ul> 
</div> 
<div id="detailarea" class="col-md-12"> 
... 
</div> 

Jquery:

jQuery(document).ready(function($){ 
... 
$("#printall").click(function(){ 
    $('#logo, #firstshow, #detailarea').print(); 
}); 
}); 

Я пытаюсь напечатать выше идентификаторы ALLtogether в одной и той же странице, но это reconizes только первый #logo ID и печатает только логотип. Что я могу сделать, чтобы исправить это?

ответ

0
$("#printall").click(function(){ 
    var printThis = $('<div/>'); 
    $('#logo').clone().appendTo(printThis); 
    $('#firstshow').clone().appendTo(printThis); 
    $('#detailarea').clone().appendTo(printThis); 
    $(printThis).print(); 
}); 

Но это не будет клонировать любое динамическое содержимое, как если бы они ввели текст где-то.

0

попробовать в JQuery:

$("#printall").click(function(){ 
    $('#logo, #firstshow, #detailarea').each(function(){ 
     $(this).print(); 
    }; 
}); 
+1

вам нужно ')' в вашем коде .. line 4 '});' – CMedina

+0

Да, я пробовал это раньше ... Мне нужны эти divs на одной странице. Этот код работает только и открывает отдельные 3 окна печати по одному div для каждого. –

+0

Ой, да, плохо, спасибо @CMedina ok не знал, что – kpbl

1

Я думаю, что вы должны создать новую страницу, а затем добавить содержимое контейнеров, которые вы хотите напечатать, а затем распечатать его.

Что-то вроде:

$("#printall").click(function(){ 

    $('#logo, #firstshow, #detailarea').each(function(){ 
     $('#new-container').append($(this).html()); 
    }); 

    $('#new-container').print(); 
}); 
+0

Должно быть сработано, но это не так. Теперь в окне печати отображаются все мои div на странице, которые не выбраны 3. –

Смежные вопросы