“document.getElementById”在“document.write”之后返回null

时间:2012-02-07 09:17:41

标签: javascript jquery

我正在使用javascript代码在我的文档上写:

nr = Math.floor(Math.random()*99999999999);
document.write('<div class="wads-content-' + nr + '" id="flashcontent' + nr + '">'+ flashrequired +'</div>');
var flashcontent = document.getElementById('flashcontent' + nr);

在我的页面中,我执行此脚本两次。第一次一切正常,但第二次,flashcontent为null,但我知道这是错的,因为我只是在之前写了元素:

 document.getElementById

知道发生了什么事吗?

3 个答案:

答案 0 :(得分:1)

而不是document.write,做(好的'JavaScript)

var div = document.createElement("div");
div.className = "wads-content-" + nr;
div.id = "flashcontent";
div.innerHTML = flashrequired;

jQuery的做事方式:

$("<div/>").addClass("wads-content" + nr).attr("id", "flashcontent" + nr);
var flashcontent = $("#flashcontent" + nr);

答案 1 :(得分:0)

我只能假设在加载文档后发生document.write()的第二次调用。然后,当输出流已关闭时,该文档将被调用覆盖。另请参阅W3C DOM Level 2 HTML

答案 2 :(得分:0)

我的解决方案是使用此代码:

var div = document.createElement("div");
div.innerHTML = flashrequired;
//Add the flash HTML (embed) in my div
addFlash(div);

var el = '<div class="wads-content-' + nr + '" id="flashcontent' + nr + '">'+ div.innerHTML +'</div>';
document.write(el);

所以我不必在我的dom中找到该元素,我在javascript中创建它并将其写入我的文档中。