如何使用jquery输出html而不附加到元素?

时间:2011-01-31 12:53:48

标签: jquery

我想输出下面的html代码而不将其附加到任何元素。 这是可能的。我需要这样做,因为我正在使用的jquery插件需要在下面有干净的html 有任何想法吗 。 感谢

 $(document).ready(function() {

  $.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    data: "{}",
    url:"page.aspx/getData",
    dataType: "json",
    success: function(data) {

      if (data.hasOwnProperty("d"))
        DoSomething(data.d);
      else
        DoSomething(data);
    }
 });



function DoSomething(msg) {
   var SComms = msg;
   alert(msg);
 }

和html

    <blockquote>
        <p>Ut eu consectetur nisi. Praesent facilisis diam nec sapien gravida non mattis justo imperdiet. Vestibulum nisl urna, euismod sit amet congue at, bibendum non risus.</p>
        <cite>&ndash; Quote Author (Quote #1)</cite>
    </blockquote>

3 个答案:

答案 0 :(得分:1)

这是不可能的。您在网页上看到的所有内容都是DOM元素。如果要显示某些内容,只需附加到适当的元素即可。或者,您可以使用登录控制台。

答案 1 :(得分:1)

至少,您必须将输出附加到bodyhtmldocument才能在浏览器中查看。当然,您可以将其输出为Javascript警报,但我强烈反对使用alert();

编辑1

您可以将输出添加到变量。

var globalVariable = '';
$(document).ready(function() {
   $.ajax({
   type: "POST",
   contentType: "application/json; charset=utf-8",
   data: "{}",
   url:"page.aspx/getData",
   dataType: "json",
   success: function(data) {
      if (data.hasOwnProperty("d"))
         DoSomething(data.d);
      else
         DoSomething(data);
   }
});

function DoSomething(msg) {
   var SComms = msg;
   globalVariable = SComms;
}

如果您这样做,您可以稍后访问该变量。但重要的是,您要在ready()方法之外声明它,否则该值会丢失,因为它超出了scope

答案 2 :(得分:0)

遇到同样的问题,似乎jQuery模板基于追加...(参见来源) 例如,这不起作用

$.template('navTpl', '<ul>{{html li}}</ul>');
$.template('navItemTpl', '<li>${titre}</li>');

var navItemTplValue = [
    {titre: 'photos'},
    {titre: 'films'},
    {titre: 'musiques'}
];
var navItemTplHtml = $.tmpl('navItemTpl', navItemTplValue);

var navTplValue = {li: navItemTplHtml}; // FAIL, even with navItemTplHtml.html()
var navTpl = $.tmpl('navTpl', navTplValue).appendTo('body');

此处的示例测试:http://jsfiddle.net/molokoloco/wtHeX/