我使用jQuery,但我现在不能使用它(没有理由)。我需要选择一个表的一部分然后打印它。
我使用此代码:
function Printon(this)
{
newWin= window.open('','','toolbar=yes,location=no,directories=yes,menubar=yes,scrollbars=yes,width=800, height=1000, left=10, top=25');
newWin.document.write('<table>' + document.getElementsByName(this).innerHTML + '</table>');
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
return false;
}
当使用<tr>
名称的参数调用函数时,我只得到一个文档:
12-11-12
undefined
我确信我的HTML是正确的,但仍然是我的HTML:
<tr name="Print_1">
<td>dhr Kees-jan ckc Von fleppenstein</td>
<td>aquaduct straat 66<br>0606 OP ORK</td>
<td>WDB-1352303696</td>
<td>2822.00</td>
<td><input type="button" value="Print this" onclick="Printon('Print_1')"></td>
<td> </td>
</tr>
<tr name="Print_1">
<td>-</td>
<td> </td>
<td> </td>
<td>46.00</td>
<td>2</td>
<td>Actiesalade herfst</td>
</tr>
<tr name="Print_1">
<td>-</td>
<td> </td>
<td> </td>
<td>46.00</td>
<td>2</td>
<td>Actiesalade herfst</td>
</tr>
在@Muthu Kumaran的灵感上,我用这个:
function Printon(dit)
{
var arr = new Array();
arr = document.getElementsByName(dit);
var tabel = '';
for(var i = 0; i < arr.length; i++){
tabel += document.getElementsByName(dit)[i].outerHTML;
}
newWin= window.open('','','toolbar=yes,location=no,directories=yes,menubar=yes,scrollbars=yes,width=800, height=1000, left=10, top=25');
newWin.document.write('<table border=\"2\" cellpadding=\"2\" cellspacing=\"0\">' + tabel + '</table>');
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
return false;
}
修正了它现在有效!
答案 0 :(得分:1)
不要在函数中使用this
作为参数。给出一个像名字一样的变量。另外document.getElementsByName
将返回元素数组,因此您必须使用document.getElementsByName(name)[0]
试试这个,
function Printon(name)
{
newWin= window.open('','','toolbar=yes,location=no,directories=yes,menubar=yes,scrollbars=yes,width=800, height=1000, left=10, top=25');
newWin.document.write('<table>' + document.getElementsByName(name)[0].innerHTML + '</table>');
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
return false;
}
答案 1 :(得分:0)
您正在传递字符串'Print_1'并在您正在使用它的函数中。 'this'不包含'Print_1'。
最好使用变量而不是这个。将您的功能更改为以下内容。
function Printon(var tableName)
{
newWin= window.open('','','toolbar=yes,location=no,directories=yes,menubar=yes,scrollbars=yes,width=800, height=1000, left=10, top=25');
newWin.document.write('<table>' + document.getElementsByName(tableName).innerHTML + '</table>');
newWin.document.close();
newWin.focus();
newWin.print();
newWin.close();
return false;
}
希望这有帮助!!!