2016-01-20 44 views
1

嘿我创建一个ID和一个eventListener的元素。所以当我点击一个链接,我想要得到的ID。Dynamic GetElementById - 它是空的

但我没有控制这个创建的元素。 “不能设置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

您插入的链接不存在于您的实际网页中,而是存在于您的iframe中。所以,你必须从iframe访问它:

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

thx这么多它的工作thx thx thx –