[英]jQuery: Hide tr of child td that contains ul + print?
我有一个<table>
,其中某些<td>
包含<ul>
,当我点击一个特定的按钮时,我想要它,有两件事情发生:
<tr>
儿童<td>
包含一个<ul>
被隐藏 <ul>
<tr>
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();
}
我看到的第一个问题是line 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")
,它通常会返回所有表行,并根据什么信息过滤结果对象返回true。
$('#todo-list tr:has(td:has(ul))')
应该做大致相同的事情 href="javascript:void(0)"
是防止默认链接操作的一种方法,或者,在click事件中你可以调用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);
})
只需为Print media定义特定的CSS,您就可以获得相同的结果:
@media print
{
td.noprint {display:none;}
}
(只是一个小例子,适应您的特定需求。)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.