我如何打开一个新窗口,并通过Javascript将只选择的html元素传递给它(为了以后打印它们的目的)?
How can I open a new window and pass to it (for the later purpose of printing them) only selected html elements with Javascript?
如果我的代码像这样:
<table>
<td class="noprint">1</td>
<td class="noprint">2</td>
<td class="print">3</td>
<td class="noprint">4</td>
<td class="noprint">5</td>
<td class="print">6</td>
<td class="noprint">7</td>
<td class="noprint">8</td>
<td class="print">9</td>
</table>
我想用javascript打开一个新窗口,只打印具有class="print"的元素,我该怎么做?Tnx .
你在评论中说你想:
"打开一个新窗口,并"传递"类为"print"的元素到该页"
你可以克隆你的表,删除任何不是class="print"
的单元格,得到它的HTML,并把它写出来的新窗口:
var clone = document.querySelector("selector for your table").cloneNode(true);
var list = clone.querySelectorAll("td:not(.print)");
var i;
for (i = 0; i < list.length; ++i) { // QSA returns static lists, so we can loop normally
list[i].parentNode.removeChild(list[i]);
}
var wnd = window.open();
wnd.document.write("<!doctype html><html><title>Something Appropriate</title></head><body></body></html>");
wnd.document.close();
wnd.document.body.innerHTML = clone.outerHTML
生活例子
但是请注意,大多数时候,这是不必要的。如果你的主窗口有@media screen
和@media print
规则,你可以在主窗口中管理显示的内容和打印的内容,而不必打开一个新的。
示例- CSS:
table {
border-collapse: collapse;
border: 1px solid #aaa;
}
td {
padding: 2px;
border: 1px solid #aaa;
}
@media screen {
.print-only {
display: none;
}
}
@media print {
.screen-only {
display: none;
}
}
HTML: <table>
<tbody>
<tr>
<td class="screen-only">Screen Only</td>
<td class="print-only">Print Only</td>
<td>Either print or screen</td>
</tr>
</tbody>
</table>
生活复制
请注意,当您在屏幕上查看页面时,您看到的是"只打印"answers"打印或屏幕"单元格,但是当您打印(或查看打印预览)时,您看到的是"只打印"answers"打印或屏幕"单元格。
它非常强大,不需要任何脚本
你需要做一个css并给media =" print",像这样:
<link rel="your path" media="print">
/* define these properties into css file: */
.noprint{display: none;}
.print{display: block;}
相关文章:
- 我应该怎么做才能避免在网页上移动元素(html、css、jQuery)
- 更改元素HTML,但忽略最后一个子项
- 增加在选择元素HTML中搜索的时间
- Jquery无法获取元素html
- 从所选元素 html 上方的元素获取属性值
- 在 JS 的单选按钮元素 (HTML) 中使用 title 属性
- 如何在页面上播放每个音频元素(HTML,JQuery,Javascript)
- 我需要一种新的方法来检测元素 HTML 是否有更改
- 获取父元素 html 以及子内容
- AngularJS指令:如何在ng-repeat中动态更改元素html
- html 属性中的引号被标记为 ”来自元素.html()的结果
- 在指令's链接中替换angular元素html
- 如果元素有子元素html元素
- 如何下推表格中的元素- HTML
- 如何在纯javascript中使用变量插入数组值,如元素HTML
- jQuery textilate .js -如何“重置”元素HTML并重新启动动画
- 将元素HTML附加到新附加的textarea中
- 在添加类的情况下,CSS 3的过渡是否不能与模板元素(HTML 5)一起工作?
- jQuery没有更新DOM元素HTML
- 在jQuery中更快地替换元素HTML