Javascript 新添加的DOM元素返回null

Javascript 新添加的DOM元素返回null,javascript,dom,tinymce,getelementbyid,Javascript,Dom,Tinymce,Getelementbyid,我正在运行时向tinymce文档添加一个跨度 ed.onKeyUp.add(function (ed, e) { sendText(ed, e); ed = tinyMCE.get('editor'); range = ed.selection.getRng(); var newNode = ed.getDoc().createElement("span"); newNode.id = "caret"; ed.getDoc().body.appendChil

我正在运行时向tinymce文档添加一个跨度

ed.onKeyUp.add(function (ed, e) {
   sendText(ed, e);
   ed = tinyMCE.get('editor');
   range = ed.selection.getRng();

   var newNode = ed.getDoc().createElement("span");
   newNode.id = "caret";
   ed.getDoc().body.appendChild(newNode);

   newNode.innerHTML = "|";
   newNode.style.color = "black";
   range.insertNode(newNode);
});
如您所见,我使用createElement方法添加节点,并使用append child将其添加到DOM中,以添加到所需的元素中

问题是,我无法使用以下命令找到新添加的元素:

document.getElementById("caret");
它正在返回null。为什么会这样?知道我能做什么吗

编辑:我正在使用document.getElementById(“插入符号”);在初始化tinyMCE文档时调用的函数中,因为我需要此函数来闪烁自定义插入符号

这就是功能:

function blink() {
        var caret = document.getElementById("caret");

        if (caret.style.color == "transparent") {
            caret.style.color = "black"
        } else {
            caret.style.color = "transparent";
        }
    }

我把它称为oninit:setInterval(“blink()”,700),其中oninit是tinyMCE的一个参数。

tinyMCE使用一个包含自己文档的iframe来允许编辑

因此,当您使用
document.getElementById
时,您正在搜索错误的DOM

如果您有权访问TinyMCE编辑器对象,则可以使用
ed.getDoc().getElementById()


如果需要全局访问,可以使用集合访问特定编辑器。

插入节点后是否调用
document.getElementById(“插入符号”)
ed.getDoc().getElementById(“插入符号”)
有效吗?我不认识其中一些(
ed.onKeyUp.add
ed.getDoc()
…)。你在使用某种JavaScript库吗?@scott.korin:是TinyMCEI我猜她在用Tinymcey是的我在用tinyMCE。。让我编辑这篇文章,并告诉你我从哪里打电话给GetElementById谢谢你的回答!没错,你说得有道理!但是我的blink()函数必须是全局函数才能访问,因此我没有访问ed的权限!