我有一个<table>
,其中某些<td>
包含<ul>
,如果点击一个特定按钮,我想要它,有两件事情发生:
<tr>
的子<td>
的父<ul>
隐藏<tr>
<ul>
http://jsfiddle.net/emturano/S9YWL/
HTML:
<table id="todo-list">
<tr>
<td>Entry No UL 1</td>
</tr>
<tr>
<td>Entry No UL 2</td>
</tr>
<tr>
<td>
<ul>I SHOULD BE HIDDEN WHEN PRINTED</ul>
</td>
</tr>
<tr>
<td>Entry No UL 4</td>
</tr>
</table><p>
点击打印
jQuery的:
function () {
$('#followup_a').click(followup);
});
function followup() {
$('#todo-list tr:has(td:has(ul))').hide();
window.print();
}
答案 0 :(得分:2)
我看到的第一个问题是第function () {
行。那是不正确的语法。我认为你的意思是文档就绪方法,我将在答案中展示。
从链接中删除onClick="window.print()"
,然后将JS更改为以下内容:
$(function(){ // document . ready call
$('#followup_a').on("click", function(e) {
// if href does not contain `javascript:void(0)` then use
// e.preventDefault(); // to prevent default link action
$("#todo-list tr").filter(function(i) { return $(this).find("> td ul").length > 0 }).hide();
window.print();
});
})
这是做什么的:
$("#todo-list tr")
,它通常会返回所有表行,并根据返回的信息过滤结果对象真正。
$('#todo-list tr:has(td:has(ul))')
应该做大致相同的事情href="javascript:void(0)"
是阻止默认链接操作的一种方法,或者是您可以在event.preventDefault()上调用的点击事件function followup(e) {
$("#todo-list tr").filter(function(i) { return $(this).find("> td ul").length > 0 }).hide();
window.print();
}
$(function(){ // document . ready call
$('#followup_a').on("click", followup);
})
答案 1 :(得分:0)
只需为Print media定义特定的CSS,您就可以获得相同的结果:
@media print
{
td.noprint {display:none;}
}
(只是一个小例子,适应您的特定需求。)