动态GetElementById - 它为null

时间:2016-01-20 19:41:57

标签: javascript dynamic getelementbyid

嘿,我创建一个带有id和eventListener的Element。所以,当我点击链接时,我想获得ID。

但是我没有控制这个创建的元素。 “无法设置null的属性”。

function insertLink(text,link,window,underline)
{

    var doc = document.getElementById("iframe_editor").contentWindow.document;      
    var sel = doc.getSelection();
    var count = parseInt(document.getElementById("counter").value);
    if (sel.rangeCount > 0)
    {
        count ++;
        document.getElementById("counter").value = count;
        var range= sel.getRangeAt(0);

        myParent=document.getElementById("iframe_editor").contentWindow.document.body;
        alink=document.createElement("a");

        var text = document.createTextNode(document.getElementById("linktext").value);

        alink.href = document.getElementById("linkhref").value;
        alink.id = "testid"+count;

        alink.appendChild(text);    
        myParent.appendChild(alink);
        range.insertNode(alink);
        alink.addEventListener( 'click', function(){
            loadElement(count.toString());
        },count );
    }
}

function loadElement(t)
{
    alert(t);
    document.getElementById("testid"+t).innerHTML = "<a href = ''>Test</a>";
}

当我检查loadElement中的变量t时,我得到正确的数字。但我不能用innerhtml改变这个元素。

为什么不呢?

1 个答案:

答案 0 :(得分:1)

您插入的链接在您的实际网页中不存在,但在您的iframe中。因此,您必须从iframe访问它:

document.getElementById("iframe_editor").contentWindow.document.getElementById("testid"+t).innerHTML = "<a href = ''>Test</a>";