javascript
  • html
  • dom
  • 2011-09-19 47 views 0 likes 
    0

    如何在頁面加載時使用getElementById(不含)將文本/元素添加到目標元素(div)?將文本/元素附加到DIV標記

    這裏是目前我的標記:

    <html> 
    <head> 
    <title>test</title> 
    
    <script language="javascript"> 
    
    
    /document.getElementById('content').innerHTML = 'Fred Flinstone'; 
    
    </script> 
    </head> 
    
    <body> 
    
    <div id="content"> 
    dssdfs 
    
    </div> 
    
    
    </body> 
    </html> 
    
    +0

    請注意「HTML」和「Text」之間的區別。您只是試圖將文本附加到元素。這很容易使用此代碼完成:'element.appendChild(document.createTextNode(「text」));'。 – 2011-09-19 22:53:06

    回答

    0

    最快的(雖然不是最好的)的方式來做到這一點是把你的腳本塊對HTML文件的結尾(後<div>要修改) 。

    更好的方式來做到這一點是如果你希望它在頁面加載後執行,爲DOM負荷通知

    註冊,則需要觀察DOM加載事件。您可以通過訂閱腳本塊中的DOM加載事件來完成此操作,然後將操縱DIV的代碼放入事件處理程序中。

    棘手的部分是不同的瀏覽器可能需要略微不同的方式進行註冊,將通知的加載DOM時(這是jQuery的或不同的庫變得非常有用)

    下面是關於不同的方式來註冊一些信息用於在DOM加載時調用回調。由於更流行的瀏覽器的現代版本已經變得更符合現在的標準,所以信息可能有點過時了:http://www.javascriptkit.com/dhtmltutors/domready.shtml

    +0

    這將使它無效的HTML。所有的腳本都應該在頭上。 –

    +0

    它不會驗證,但它會工作 - 我不清楚在我的答案,但我的意思是,如果他不打算使用DOM加載事件或window.onload那麼腳本必須放置後HTML中的問題div –

    0

    我認爲發生的事情是腳本在文檔準備好之前正在執行。嘗試將您的JavaScript放入body load事件中。

    0
    <script type="text/javascript"> 
        function dothis() 
        { 
         document.getElementByID('content').innerHTML = 'Fred Flinstone'; 
        } 
    </script> 
    
    <body onLoad="dothis()"> 
        ... 
    </body> 
    
    相關問題