我正在使用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
知道发生了什么事吗?
答案 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中创建它并将其写入我的文档中。