jQuery打印功能,如何使用迭代?

时间:2013-06-13 16:00:09

标签: javascript jquery forms printing html-table

我正在制作一个用于在div中打印列表的打印功能。单击打印按钮时,列表输入中的数据将被放置一个将要打印的新输入。我被要求删除空白输入并将填充的输入一起显示。我被告知要使用一次迭代,但我甚至不知道如何去做。

我发送要打印的数据的输入是printArea_#并放在printLoad_#

我得到了这段代码,但不知道如何使用它......

$('#mydiv').children('input [type=text]').each(function () {
    alert(this.value); // "this" is the current element in the loop
});​

这是我的工作打印功能,它将数据放入新输入进行打印,但仍会显示空数据(我相信还有更清晰的方法可以执行此操作。)

function print_list() {
    $('input[id=printLoad_1]').val($('input[class=printArea_1]').val());
    $('input[id=printLoad_2]').val($('input[class=printArea_2]').val());
    $('input[id=printLoad_3]').val($('input[class=printArea_3]').val());
    $('input[id=printLoad_4]').val($('input[class=printArea_4]').val());
    $('input[id=printLoad_5]').val($('input[class=printArea_5]').val());
    $('input[id=printLoad_6]').val($('input[class=printArea_6]').val());
    $('input[id=printLoad_7]').val($('input[class=printArea_7]').val());
    $('input[id=printLoad_8]').val($('input[class=printArea_8]').val());
    $('input[id=printLoad_9]').val($('input[class=printArea_9]').val());
        $(".printing_list").printElement(
            {
            overrideElementCSS:[
                '/css/print_fixer.css',
                { href:'/css/print_fixer.css',media:'print'}],
            //leaveOpen:true,
            //printMode:'popup',

            });
}

我希望隐藏未填充的表格行,直到数据被放入其中一个输入中。 这是我的一个表行的示例。

       <tr id="num_1">
                <td><input id="printLoad_1" type="text" style="width:700px;" /></td>
       </tr>

1 个答案:

答案 0 :(得分:1)

可能是这样的:

var inputLength = $("input[id^='printLoad']").length;

for (var i = 1; i <= inputLength; i++) {
    $('input[id=printLoad_' + i + ']').val($('input[class=printArea_' + i + ']').val());
    if ($('input[id=printLoad_1]').val($('input[class=printArea_1]').val() == "") {
        $("#num_" + i).hide();
    }
}