将装饰为html元素的内容附加在一起;不起作用

appending content decorated as html elements doesn't work

本文关键字:加在一起 不起作用 html 元素      更新时间:2023-09-26

我有一个div容器,它只有在打印时才可见。这个关于特定用户操作的div应该注入一些内容,然后发送到打印。

@media print {
    html body * {
        display: none;
    }
    #toPrint{
        display: block;
    }
}
@media screen {
    #toPrint {
        display: none;
    }
}

在布局页面中,我有以下结构

<html>
   <body>
      @RenderBody()
      <div id="toPrint"></div>
   </body>
</html>

和dom.ready下的内部视图页面我有脚本

var content = $("<table />").append(
     $("<tr />").append(
        $("<td />").append("TEST")
      ));
$("#toPrint").append(content);

附加这个"复杂元素"不起作用,但使用以下代码可以实现

var content = "abc";
$("#toPrint").append(content);

我试着用单引号装饰元素,试着注入div而不是table,没有助手,只使用普通字符串而没有装饰元素。

您的代码中div id="toAppend"在哪里?

你试过console.log(内容)吗?

var content = $("<table />").append(
     $("<tr />").append(
        $("<td />").append("TEST")
      ));
$("#toPrint").append(content);
@media print {
    html body * {
        display: none;
    }
    #toPrint{
        display: block;
    }
}
@media screen {
    #toPrint {
        display: none;
    }
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='toPrint'>
</div>

你发布的内容和你想要的一样有效,所以我认为根据现有信息,没有人能够帮助你。我认为简化问题可以解决您遇到的任何问题。只需运行上面的代码片段,就可以看到TEST确实是隐藏的。