2011-08-11 85 views
-2

我試圖用JavaScript生成一個鏈接(a元素),但它不起作用。即使我將元素附加到身體上。沒有顯示任何內容。我發現了各種例子,但似乎沒有任何工作。用JavaScript創建鏈接

function getLink(){ 
      var a = document.createElement('a'); 
      a.title = "text"; 
      a.innerHTML = a.title; 
      a.href = "http://example.com"; 
      document.body.appendChild(a); 
     } 
+0

你可以使用jQuery嗎? –

+0

Firebug對此有何評論?你檢查過DOM嗎?你進行了哪些其他調試? –

+0

Works here .. http://jsfiddle.net/vmDfk/ – Vache

回答

2

看着the page you linked us to in comments

<body onload="getVideo"></body> 

getVideo不是一個函數調用。

寫:

<body onload="getVideo()"></body> 

注意瓦謝如何發佈包含你給我們的片段一個測試用例,並能夠立即證明該功能getVideo作品。然後,它只需要找到其他Javascript參與的內容,並且這只是八個字符,導致此解決方案。 基本調試!來自各地的問題整理


另外的想法:

  • innerText會比innerHTML比較合適;從概念上講,您正在定義用戶應該看到的內容,而不是標記應該產生的內容。正因爲如此,innerText也會爲您轉義HTML實體。

  • getVideo對於一個函數來說,這個函數根本不會「獲取」任何東西。

+0

omg ..我沒有注意到.. thx – OhSnap

1

如果您提供的代碼是所有正在運行的代碼,則不會發生任何事情。

您尚未明確稱爲函數getLink

添加:

getLink(); 

行的結尾大括號後成功運行。

0

嘗試在頁面上放置一個div,並將鏈接添加到div。另外,請嘗試使用innerText而不是innerHTML。

var div = document.getElementById("div1"); 
if (div) 
{ 
    var a = document.createElement('a');  
    a.title = "text";    
    a.innerText = a.title;    
    a.href = "http://example.com";    
    div.appendChild(a); 
} 
+0

是的,'innerText'在這裏肯定更合適。 –