Javascript JQuery$(document.ready()和document.write()

Javascript JQuery$(document.ready()和document.write(),javascript,jquery,Javascript,Jquery,首先,有没有一种方法可以在JQuery的$(document.ready()方法中使用document.write()?如果有,请提示我,因为这将解决我的问题 否则,我有别人的代码,我应该使我的工作。问题是我不允许以任何方式修改他的代码。不起作用的部分如下所示: document.write('<script src=\"http://myurl.com/page.aspx?id=1\"></script>'); document.write(“”)

首先,有没有一种方法可以在JQuery的
$(document.ready()
方法中使用
document.write()
?如果有,请提示我,因为这将解决我的问题

否则,我有别人的代码,我应该使我的工作。问题是我不允许以任何方式修改他的代码。不起作用的部分如下所示:

document.write('<script src=\"http://myurl.com/page.aspx?id=1\"></script>');
document.write(“”);
脚本标记引用了一个aspx页面,该页面执行一系列测试,然后抛出如下内容:

document.write('<img src=\"/image/1.jpg\" alt=\"Second image for id 1\">')
document.write(“”)
这些脚本只是实际情况的示例。这里的问题是,我在初始脚本中有一个
document.write()
,在附加到第一个脚本的脚本中有一个
document.write()
,我必须以某种方式在JQuery的
$(document).ready()
函数中实现这一点,而不更改他的代码


我不知道该怎么办。帮助?

jQuery有一个现成的document.write替代品。您只需要使用append方法

   jQuery('<img src=""/>').appendTo('body');
jQuery(“”).appendTo('body');

这是不言而喻的。但简单地说,您可以用您想要的任何html替换。appendTo方法中的标记名是要将html附加到的标记的名称。就这样。

根据给定的要求,不,您不能使用document.write而不真正使用文档。如果你真的不想更改代码,你可以像这样覆盖document.write()的功能,并在以后附加结果:

var phbRequirement = "";

$(function() {
  document.write = function(evil) {
    phbRequirement += evil;
  }
  document.write("Haha, you can't change my code!");
  $('body').append(phbRequirement);

});
确保在使用document.write函数之前覆盖该函数。你可以随时做


其他答案很无聊,这很有趣,但为了满足给定的要求,基本上是以错误的方式进行的。

皮卡多的答案很有效,但这对我来说更直观:

$("body").append('<img src=\"/image/1.jpg\" alt=\"Second image for id 1\">');
$(“正文”)。附加(“”);

另外,对于与document.write()一起插入的脚本部分,请查看

picardo使用的方法。要扩展该概念,请阅读:

$('<script/>')
   .attr('src', 'http://myurl.com/page.aspx?id=1')
   .appendTo('body');
$(“”)
.attr('src','http://myurl.com/page.aspx?id=1')
.附于(“主体”);
替代样式:

var imgnode = $('<img alt="Second image for id 1"/>')
   .attr('src', "image1.jpg");

$('#id1').append(imgnode);
var imgnode=$('
确保使用
attr
方法设置任何动态属性。无需以这种方式转义特殊符号


另外,我不确定动态生成脚本标记的效果如何;我从未尝试过。不过,预期它们包含或引用客户端脚本。我的假设是
page.aspx
将返回。您的问题对于您在那里尝试做什么有点模糊。

稍加调整,我就能够用这种方法来解决我的问题!非常感谢。你让我在这上面浪费了很多时间!