2014-03-26 152 views
1

嘗試在元素內創建元素。這裏是一個錨標籤內的img。 我使用append child,但註銷時的「userLogoElement」僅僅是img標籤,而anchor是一個空的錨標籤。爲什麼沒有發生任何事情?嵌套元素創建不起作用?

  var anchor = document.createElement('a'); 
     anchor.href = var0; 

     //---- Create image element ---- 
     var img = document.createElement('img'); 
     img.src = var1; 
     img.title = var2; 

     //---- Combine elements ---- 
     var userLogoElement = anchor.appendChild(img); 

     console.log(userLogoElement, anchor, img); 
     //console says img === userLogoElement, anchor is empty 

回答

1

的代碼工作正常http://jsfiddle.net/gcamP/

注意Node.appendChild()返回節點的引用,被追加,不是說你追加到節點。這就是爲什麼userLogoElement是圖像不是主播。

另請注意:在Firebug中,日誌只顯示父錨,它不包括子控制檯日誌中的子項。另一方面,Chrome確實展示了它。一種簡單的測試方法是將其附加到文檔中,並親自查看(如在小提琴中)。

+0

這是一個奇怪的事情appendChild返回IMO ...我不得不在錨點而不是用戶標識元素在'findElement(無論).html(錨)' – user2483724

+1

你可以爭辯它會最好返回節點,然後你可以做方法鏈接。 – MrCode

+0

好點!我原來對它如何工作的假設影響了我如何命名和傳遞變量。 – user2483724

0
in jquery short coding style 

$("<a>") 
.attr('href','www.pranaysonisoft.blogspot.com') 
.append($('<img>').attr('src','sdf.jpg')); 
1

我跑以下代碼:

<script type="text/javascript"> 
var0="www.google.com"; 
var1="bee.jpg"; 
var2="Don Bee"; 
    var anchor = document.createElement('a'); 
    anchor.href = var0; 

    //---- Create image element ---- 
    var img = document.createElement('img'); 
    img.src = var1; 
    img.title = var2; 

    //---- Combine elements ---- 
    var userLogoElement = anchor.appendChild(img); 

    console.log(userLogoElement); 
    console.log ("next"); 
    console.log(anchor); 
    console.log("next"); 
    console.log(img); 

    </script> 

我有以下輸出

userLogoElement: IMG SRC = 「bee.jpg」 標題= 「唐蜜蜂」

主播:
a href =「www.google.com」img src =「bee.jpg」title =「唐蜜蜂」/ a

這看起來好像工作正常。 userLogoElement返回的值不是你的錨點