dhtml提供了兩個(gè)方法來進(jìn)行添加,insertAdjacentHTML和insertAdjacentText
insertAdjacentHTML方法:在指定的地方插入html標(biāo)簽語句。
原型:insertAdjacentHTML(swhere,stext)
參數(shù):
swhere:指定插入html標(biāo)簽語句的地方,有四種值可以用:
1.beforeBegin:插入到標(biāo)簽開始前
2.afterBegin:插入到標(biāo)簽開始標(biāo)記后
3.beforeEnd:插入到標(biāo)簽結(jié)束標(biāo)記前
4.afterEnd:插入到標(biāo)簽結(jié)束標(biāo)記后
stext:要插入的內(nèi)容
例:
var sHTML="<input type=button go2()" + " value='Click Me'><BR>"
var sScript='<SCRIPT DEFER>'
sScript = sScript + 'function go2(){ alert("Hello from inserted script.") }'
sScript = sScript + '</script' + '>';
ScriptDiv.insertAdjacentHTML("afterBegin",sHTML + sScript);
在html正文中加入一行:
<DIV ID="ScriptDiv"></Div>
最終變成:
<DIV ID="ScriptDiv">
<input type=button onclick=go2() value='Click Me'><BR>
<SCRIPT DEFER>
function go2(){alert("Hello from inserted sctipt.")}'
</script>
</DIV>
insertAdjacentText方法與insertAdjacentHTML方法類似,只不過只能插入純文本,參數(shù)相同
這兩個(gè)屬性還是比較適用的,尤其是在繪圖等地方用的比較多,它的優(yōu)點(diǎn)是不會(huì)覆蓋原有的內(nèi)容,讓我們來假設(shè)一下吧,有一個(gè)DIV,它里面已經(jīng)有內(nèi)容了,現(xiàn)在我們還要?jiǎng)討B(tài)的添加內(nèi)容進(jìn)去,而又不能覆蓋原有的內(nèi)容,那么這時(shí)候這個(gè)東西就很重要了,innerHTML是會(huì)把原有的東西覆蓋掉的。
所有成對(duì)出現(xiàn)的HTML都可以用這個(gè)屬性,這點(diǎn)和innerHTML一樣,比如<body>..</body>、<div>....</div>等這些都有這兩個(gè)屬性
補(bǔ)充下:剛才我試了下,innerHTML這個(gè)屬性是可讀寫的,以前我知道innerHTML可以對(duì)節(jié)點(diǎn)插入內(nèi)容,但是這個(gè)屬性也是可讀的,也就是說innerHTML中保存的是節(jié)點(diǎn)的html內(nèi)容;看下以下代碼就完全明白了:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>無標(biāo)題文檔</title>
</head>
<body>
safdsdaf按時(shí)地方
<script language="javascript">
alert(document.body.innerText)
</script>
</body>
</html>
上面是我轉(zhuǎn)帖到別人的代碼,下面我再補(bǔ)充幾行代碼,也很經(jīng)典有,也許你用的著:
<script language="javascript" type="text/javascript">
function addFile()
{
var filebutton = '<br><input type="file" size="50" name="File" />';
document.getElementByIdx('FileList').insertAdjacentHTML("beforeEnd",filebutton);
}
</script>
上面的是Head里面的腳本,下面是body里面的:html代碼:
<p id="FileList">
<input type="file" runat="server" size="50" name="File"/>
</p>
你把代碼拷貝到文件中保存成一個(gè)html就知道效果了。