javascript
  • html
  • dom
  • 2011-09-19 119 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> 
    
    相关问题