Я использую плагин Jquery Print Element 1.2 для печати только содержимого div.
Таким образом, вам не нужно устанавливать отображение css: нет для всех тех элементов, которые вы не хотите печатать.
Я знаю, что это не прямой ответ на ваш вопрос, но воспринимайте это как доброе предложение.
Пример:
$('SelectorToPrint').printElement();
Вот моя реализация с использованием опции classNameToAdd:
function printDiv(divToPrint) {
$('#' + divToPrint).printElement(
{
printBodyOptions:
{
classNameToAdd: 'printarea'
}
}
);
}
После того, как вы добавили плагин на свою страницу, вы можете вызвать вышеуказанную функцию, когда пользователь нажимает кнопку / ссылку печати.
<a href="#" onclick="javascript:printDiv('theIDofYourDiv')">Print part of the page</a>
Вы можете скачать этот плагин и найти дополнительную документацию здесь .