print
is not a function on a jQuery Element.
As pointed out in the comments, there's a couple of good answers already here, and a CSS solution here (not the accepted answer - that's rubbish!).
Here's a couple of methods I've knocked up. It's not quite as simple as it seems - you may still need CSS, and the second may not work for more complex pages, but it gives you an idea of what you're trying to achieve.
$.fn.print = function(){
var content = $(this).html();
var w = window.open('about:blank','', 'width=800,height=600,top=100,left=100');
w.document.write(content);
w.print();
w.close();
};
$.fn.print2 = function(){
$('*').not(this).addClass('hidden-for-print').hide();
$(this).children().removeClass('hidden-for-print').show();
$(this).parents().removeClass('hidden-for-print').show();
window.print();
$('.hidden-for-print').show();
};
http://jsfiddle.net/daveSalomon/et7xxd2s/1/