隐藏包含ul + print的子td的tr
jQuery: Hide tr of child td that contains ul + print?
我有一个<table>
,其中某些<td>
包含<ul>
,我想当一个特定的按钮被点击时,发生两件事:
- 包含
<ul>
的<td>
的父<tr>
被隐藏 - 执行步骤1后打印窗口,使包含
<ul>
的<tr>
隐藏在打印页上
<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();
}
我看到的第一个问题是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();
});
})
- .filter()是一个很好的jquery方法,它允许您调用一组jquery元素,如
$("#todo-list tr")
,它通常会返回所有表行,并根据返回true的信息过滤结果对象。- 尽管
$('#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);
})
演示为打印媒体定义特定的CSS也可以达到同样的效果:
@media print
{
td.noprint {display:none;}
}
(只是一个小例子,适应您的具体需求)
相关文章:
- 在同一tr-jQuery中获取td的值
- jQuery将输入集中在下一个tr->td时,td包含一个输入字段,但从不关注html选择
- 使用动态变量从tr访问子td
- 在 jquery 中的 TR 中查找 td 的所有输入
- jQuery选择器,用于查找包含具有特定值的TD输入的TR
- 防止隐藏的 tr 破坏 td 宽度
- focus Using Jquery <tr> <td>
- 如何在选定的 tr 对象中选择 td
- 根据TD类别隐藏TR
- 访问特定<td>对于给定<tr>以及更改html
- 如何在点击tr的td后获取tr的id's元素
- 使用js:order<创建表时出现问题;tr>并且<td>
- 正在获取循环中td元素的tr id
- 我如何在AJAX中循环数据并在其中存储特定值's各自的tr td
- jquery:将TR移动到新移动的TD
- 获取动态值 tr jquery 的每个 td 值
- 使用jQuery从TR父级中选择第一个TD子级
- Jquery:选择tr元素的第二个td
- 选择具有动态 ID 的特定 tr 的特定 td
- 如何使表格td tr根据文本长度自动宽度