跟着杨中科学习asp.net之dom
Dom教程
使用javascript操作dom進(jìn)行dhtml開(kāi)發(fā),目標(biāo):能夠使用javascript操作dom實(shí)現(xiàn)常見(jiàn)的dhtml效果
Dom就是html頁(yè)面的模型,將每個(gè)標(biāo)簽都做成為一個(gè)對(duì)象
,javascript通過(guò)調(diào)用dom中的屬性、方法就可以對(duì)網(wǎng)頁(yè)中的文本框、層等元素進(jìn)行編程控制,比如通過(guò)操作文本框的dom對(duì)象,就可以讀取文本框中的值、設(shè)置文本框中的值
Dom也像winform一樣,通過(guò)事件、屬性、方法進(jìn)行編程
Javascript→dom就是c#→.net framework。
Css+javascritp+dom=dhtml
Dom事件
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body οnmοusedοwn="alert('別點(diǎn)我!')">
</body>
</html>
封裝到函數(shù)里面:直接調(diào)用
<head>
<title></title>
<script type="text/javascript">
function bodymousedown()
{ alert('點(diǎn)到我了!'); alert('哈哈!') }
</script>
</head>
<body οnmοusedοwn="bodymousedown()">
</br></br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br>
</body>
</html>
<head>
<title></title>
<script type="text/javascript">
function bodymousedown()
{ alert('點(diǎn)到我了!'); alert('哈哈!') }
function f1() {
alert("我是f1");
}
function f2() {
alert("我是f2");
}
</script>
</head>
<!--<body οnmοusedοwn="bodymousedown()">-->
<input type="button" οnclick="document.οndblclick=f1" value="關(guān)聯(lián)事件1" />
<input type="button" οnclick="document.οndblclick=f2" value="關(guān)聯(lián)事件2" />
</br></br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br></br></br></br></br></br></br>
</br></br></br></br></br></br>
</body>
雙擊效果:
Window對(duì)象
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function confirmdemo() {
if (confirm("是否進(jìn)入?")) {
alert("進(jìn)入了!");
}
else {
alert("取消進(jìn)入了!");
}
}
</script>
</head>
<body>
<input type="button" value="confirmtest" οnclick="confirmdemo()"/>
</body>
</html>
<input type="button" value="navigate測(cè)試" οnclick="navigate('HTMLPagedom.htm')"/>
重新導(dǎo)航到另外的頁(yè)面
setInterval每隔一段時(shí)間執(zhí)行指定的代碼,第一個(gè)參數(shù)為代碼
的字符串,第二個(gè)參數(shù)為間隔時(shí)間(單位毫秒),返回值為定時(shí)
器的標(biāo)識(shí)
function startInterval() {
setInterval("alert('hello')", 5000)
}
</script>
</head>
<body>
<input type="button" value="confirmtest" οnclick="confirmdemo()"/>
<input type="button" value="navigate測(cè)試" οnclick="navigate('HTMLPagedom.htm')"/>
<input type="button" value="setInterval測(cè)試" οnclick="startInterval()"/>
clearInterval取消setInterval的定時(shí)執(zhí)行,相當(dāng)于Timer中的
Enabled=False。因?yàn)閟etInterval可以設(shè)定多個(gè)定時(shí),所以
clearInterval要指定清除那個(gè)定時(shí)器的標(biāo)識(shí),即setInterval的返回
值。
var intervalId = setInterval("alert('hello')", 5000);
clearInterval(intervalId);
var intervalId;
function startInterval() {
intervalId=setInterval("alert('hello')", 5000)
}
</script>
</head>
<body>
<input type="button" value="confirmtest" οnclick="confirmdemo()"/>
<input type="button" value="navigate測(cè)試" οnclick="navigate('HTMLPagedom.htm')"/>
<input type="button" value="setInterval測(cè)試" οnclick="startInterval()"/>
<input type="button" value="停止Interval" οnclick="clearInterval(intervalId)"/>
</body>
setTimeout("alert('這是timeout')",2000)
走馬燈
標(biāo)題欄走馬燈效果
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新學(xué)期歡迎新同學(xué)</title>
<script type="text/javascript">
function scroll() {
var title = document.title;
}
</script>
</head>
<body>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新學(xué)期歡迎新同學(xué)</title>
<script type="text/javascript">
function scroll() {
var title = document.title;
var firstch = title.charAt(0);
var leftstr = title.substring(1,title.length);
document.title = leftstr + firstch;
}
scroll();
</script>
</head>
<body>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新學(xué)期歡迎新同學(xué)</title>
<script type="text/javascript">
function scroll() {
var title = document.title;
var firstch = title.charAt(0);
var leftstr = title.substring(1, title.length);
document.title = leftstr + firstch;
}
setInterval("scroll()", 500)
</script>
</head>
<body>
</body>
</html>
每隔500毫秒滾動(dòng),實(shí)現(xiàn)走馬燈效果
練習(xí):剛進(jìn)入的時(shí)候還是向左滾動(dòng),點(diǎn)擊【向左】按鈕就向左連
續(xù)滾動(dòng),點(diǎn)擊【向右】按鈕就向右連續(xù)滾動(dòng)。
? 思路1、全局變量,標(biāo)志當(dāng)前的滾動(dòng)方向,當(dāng)點(diǎn)擊向左的時(shí)候
dir="left",向右dir="right"。
? 思路2、scrollleft scroolright,向右滾的時(shí)候?qū)crollleft的Interval
clear掉,然后setInterval啟動(dòng)scrollright
Dom事件
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script>
btn.value = "ok";
</script>
</head>
<body>
<input type="button" id="btn" value="模態(tài)對(duì)話框" οnclick="showModelessDialog('dialog.htm')"/>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script>
// btn.value = "ok";
</script>
</head>
<body οnlοad="btn.value = 'ok'">
<input type="button" id="btn" value="模態(tài)對(duì)話框" οnclick="showModelessDialog('dialog.htm')"/>
</body>
</html>
在頁(yè)面加載完成后onload才會(huì)調(diào)用
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script>
// btn.value = "ok";
</script>
</head>
<body οnlοad="btn.value = 'ok';" οnunlοad="alert('洛陽(yáng)親友如相問(wèn)!')">
<input type="button" id="btn" value="模態(tài)對(duì)話框" οnclick="showModelessDialog('dialog.htm')"/>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script>
// btn.value = "ok";
</script>
</head>
<body οnlοad="btn.value = 'ok';"
οnbefοreunlοad="window.event.returnValue=' 真的要放棄發(fā)帖退出嗎?'">
<input type="button" id="btn" value="模態(tài)對(duì)話框" οnclick="showModelessDialog('dialog.htm')"/>
</body>
</html>
Dom屬性
window對(duì)象的屬性1
window.location.href='http://www.itcast.cn',重新導(dǎo)向新的地址,和navigate方
法效果一樣。window.location.reload() 刷新頁(yè)面
window.event是非常重要的屬性,用來(lái)獲得發(fā)生事件時(shí)的信息,事件不局限于
window對(duì)象的事件,所有元素的事件都可以通過(guò)event屬性取到相關(guān)信息。類(lèi)似
于winForm中的e(EventArg).
? altKey屬性,bool類(lèi)型,表示發(fā)生事件時(shí)alt鍵是否被按下,類(lèi)似的還有
ctrlKey、shiftKey屬性,例子 <input type="button" value="點(diǎn)擊"
οnclick="if(event.altKey){alert('Alt點(diǎn)擊')}else{alert('普通點(diǎn)擊')}" /> ;
? clientX、clientY 發(fā)生事件時(shí)鼠標(biāo)在客戶區(qū)的坐標(biāo);screenX、screenY 發(fā)生
事件時(shí)鼠標(biāo)在屏幕上的坐標(biāo);offsetX、offsetY 發(fā)生事件時(shí)鼠標(biāo)相對(duì)于事件
源(比如點(diǎn)擊按鈕時(shí)觸發(fā)onclick)的坐標(biāo)。
? returnValue屬性,如果將returnValue設(shè)置為false,就會(huì)取消默認(rèn)事件的處
理。在超鏈接的onclick里面禁止訪問(wèn)href的頁(yè)面。在表單校驗(yàn)的時(shí)候禁止提
交表單到服務(wù)器,防止錯(cuò)誤數(shù)據(jù)提交給服務(wù)器、防止頁(yè)面刷新。
<a href="http://www.baidu.com" οnclick="alert('禁止訪問(wèn)!')">百度</a>
點(diǎn)擊百度后,頁(yè)面會(huì)彈出禁止訪問(wèn)
但是點(diǎn)擊ok后頁(yè)面還是會(huì)跳轉(zhuǎn)到百度
現(xiàn)要實(shí)現(xiàn)頁(yè)面不跳轉(zhuǎn)
要阻止跳轉(zhuǎn):
<a href="http://www.baidu.com" target="_blank" οnclick="alert('禁止訪問(wèn)!'); window.event.returnValue=false;">百度</a>
同樣表單的提交操作類(lèi)似:
<form action="Default.aspx">
<input type="submit" value="提交" οnclick="alert('數(shù)據(jù)異常禁止提交!');window.event.returnValue=false;"/>
</form>
? srcElement,獲得事件源對(duì)象。幾個(gè)事件共享一個(gè)事件響應(yīng)函數(shù)用。
? keyCode,發(fā)生事件時(shí)的按鍵值。
? button,發(fā)生事件時(shí)鼠標(biāo)按鍵,1為左鍵,2為右鍵,3為左右鍵同時(shí)按。
<body οnmοusedοwn="if(event.button==2){alert('禁止復(fù)制');}">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input type="button" value="href" οnclick="alert(location.href)"/>//顯示當(dāng)前頁(yè)面的地址
</body>
</html>
<input type="button" value="點(diǎn)擊"οnclick="if(event.altKey){alert('Alt點(diǎn)擊')}else{alert('普通點(diǎn)擊')}" />
定時(shí)器走馬燈易錯(cuò)點(diǎn):
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新學(xué)期歡迎新同學(xué)</title>
<script type="text/javascript">
function scrollleft() {
var title = document.title;
var lastch = title.charAt(title.length-1);//易錯(cuò) 返回最后一個(gè)字符charAt() 方法可返回指定位置的字符。
var leftstr = title.substring(0, title.length-1);//易錯(cuò) substring截取字符串
document.title = lastch + leftstr;
}
// function scrollright() {
// var title = document.title;
// var firstch = title.charAt(title.length);
// var leftstr = title.substring(1, title.length);
// document.title = leftstr + firstch;
// }
// setInterval("scrollleft()", 500)
</script>
</head>
<body>
<input type="button" value="滾動(dòng)" οnclick=" setInterval('scrollleft()', 500)">
</body>
</html>
每點(diǎn)擊一次會(huì)啟動(dòng)一個(gè)定時(shí)器,因此滾動(dòng)的速度會(huì)加快
停止代碼寫(xiě)法:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>新學(xué)期歡迎新同學(xué)</title>
<script type="text/javascript">
function scrollleft() {
var title = document.title;
var lastch = title.charAt(title.length-1);//易錯(cuò)
var leftstr = title.substring(0, title.length-1);//易錯(cuò)
document.title = lastch + leftstr;
}
// function scrollright() {
// var title = document.title;
// var firstch = title.charAt(title.length);
// var leftstr = title.substring(1, title.length);
// document.title = leftstr + firstch;
// }
// setInterval("scrollleft()", 500)
</script>
</head>
<body>
<input type="button" value="滾動(dòng)" οnclick="timeId=setInterval('scrollleft()', 500)">
<input type="button" value="停止定時(shí)器" οnclick=" clearInterval(timeId)">
</html>
Dom屬性
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<input type="button" value="分享本頁(yè)給好友" οnclick="clipboardData.setData('Text','我發(fā)現(xiàn)這個(gè)頁(yè)面很黃很暴力!'
+location.href);alert('已經(jīng)將地址放到粘貼板中,趕快通知qq好友!');"/>
</body>
</html>
<body οncοpy="alert('禁止復(fù)制!');return false;">
<input type="button" value="分享本頁(yè)給好友" οnclick="clipboardData.setData('Text','我發(fā)現(xiàn)這個(gè)頁(yè)面很黃很暴力!'
+location.href);alert('已經(jīng)將地址放到粘貼板中,趕快通知qq好友!');"/>abcdefg
所有元素都有oncopy,onpaste事件
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body οncοpy="alert('禁止復(fù)制!');return false;">
<input type="button" value="分享本頁(yè)給好友" οnclick="clipboardData.setData('Text','我發(fā)現(xiàn)這個(gè)頁(yè)面很黃很暴力!'
+location.href);alert('已經(jīng)將地址放到粘貼板中,趕快通知qq好友!');"/>abcdefg
<br/>
<input type="text" οnpaste="alert('禁止粘貼!');return false;"/>
</body>
</html>
在網(wǎng)站中復(fù)制文章的時(shí)候,為了防止那些拷貝黨不添加文章來(lái)源,
自動(dòng)在復(fù)制的內(nèi)容后添加版權(quán)聲明。
function modifyClipboard() {
clipboardData.setData('Text', clipboardData.getData('Text')
+ '本文來(lái)自傳智播客技術(shù)專(zhuān)區(qū),轉(zhuǎn)載請(qǐng)注明來(lái)源。' +
location.href);
}
οncοpy="setTimeout('modifyClipboard()',100)"。用戶復(fù)制動(dòng)作發(fā)生
0.1秒以后再去改粘貼板中的內(nèi)容。100ms只是一個(gè)經(jīng)常取值,
寫(xiě)1000、10、50、200……都行。不能直接在oncopy里修改粘
貼板。
不能直接在oncopy中執(zhí)行對(duì)粘貼板的操作,因此設(shè)定定時(shí)器,0.1
秒以后執(zhí)行,這樣就不再oncopy的執(zhí)行調(diào)用棧上了。
<script>
function modifyClipboard() {
clipboardData.setData('Text', clipboardData.getData('Text')
+ '本文來(lái)自傳智播客技術(shù)專(zhuān)區(qū),轉(zhuǎn)載請(qǐng)注明來(lái)源。' +
location.href);
}
</script>
</head>
<body οncοpy="setTimeout('modifyClipboard()',100)">
<input type="button" value="分享本頁(yè)給好友" οnclick="clipboardData.setData('Text','我發(fā)現(xiàn)這個(gè)頁(yè)面很黃很暴力!'
+location.href);alert('已經(jīng)將地址放到粘貼板中,趕快通知qq好友!');"/>abcdefg
<br/>
<input type="text" οnpaste="alert('禁止粘貼!');return false;"/>
</body>
</html>
前進(jìn)后退導(dǎo)航
window對(duì)象的屬性4
history操作歷史記錄
? window.history.back()后退;window.history.forward()前進(jìn)。也可以
用window.history.go(-1)、window.history.go(1)前進(jìn)
document屬性。是最復(fù)雜的屬性之一。后面講解詳細(xì)使用。
第一個(gè)頁(yè)面:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<!--<javasctipt type="text/javascript">
function modifyClipboard() {
clipboardData.setData('Text', clipboardData.getData('Text')
+ '本文來(lái)自傳智播客技術(shù)專(zhuān)區(qū),轉(zhuǎn)載請(qǐng)注明來(lái)源。' +
location.href);
}
</javascript>-->
<script>
function modifyClipboard() {
clipboardData.setData('Text', clipboardData.getData('Text')
+ '本文來(lái)自傳智播客技術(shù)專(zhuān)區(qū),轉(zhuǎn)載請(qǐng)注明來(lái)源。' +
location.href);
}
</script>
</head>
<body οncοpy="setTimeout('modifyClipboard()',100)">
<input type="button" value="分享本頁(yè)給好友" οnclick="clipboardData.setData('Text','我發(fā)現(xiàn)這個(gè)頁(yè)面很黃很暴力!'
+location.href);alert('已經(jīng)將地址放到粘貼板中,趕快通知qq好友!');"/>abcdefg
<br/>
<input type="text" οnpaste="alert('禁止粘貼!');return false;"/>
<input type="button" value="跳轉(zhuǎn)頁(yè)面" οnclick="navigate('HTMLPagehistory.htm')"/>
<input type="button" value="前進(jìn)" οnclick="window.history.forward()">
</body>
</html>
第二個(gè)頁(yè)面:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
</body>
<input type="button" value="后退" οnclick="window.history.back()"/>
</html>
或可寫(xiě)成<a href="javascript:window.history.back()">后退</a>
這樣,效果是一樣的
document屬性。是最復(fù)雜的屬性之一。后面講解詳細(xì)使用。
document屬性1
document是window對(duì)象的一個(gè)屬性,因?yàn)槭褂脀indow對(duì)象成員
的時(shí)候可以省略window.,所以一般直接寫(xiě)document
document的方法:
? (1)write:向文檔中寫(xiě)入內(nèi)容。writeln,和write差不多,只不過(guò)
最后添加一個(gè)回車(chē)
? <input type="button" value="點(diǎn)擊" οnclick="document.write('<font
color=red>你好</font>')" />
? 在onclick等事件中寫(xiě)的代碼會(huì)沖掉頁(yè)面中的內(nèi)容,只有在頁(yè)面加載
過(guò)程中write才會(huì)與原有內(nèi)容融合在一起
? <script type="text/javascript">
? document.write('<font color=red>你好</font>');
? </script>
? write經(jīng)常在廣告代碼、整合資源代碼中被使用。見(jiàn)備注
內(nèi)容聯(lián)盟、廣告代碼、cnzz,不需要被主頁(yè)面的站長(zhǎng)去維護(hù)內(nèi)容,只
要被嵌入的js內(nèi)容提供商修改內(nèi)容,顯示的內(nèi)容就變了。
1. write
<script type="text/javascript">
document.write("<a href='http://www.itcast.cn'>傳智播客</a>");
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<script type="text/javascript">
document.write("<a href='http://www.itcast.cn'>傳智播客</a>");
</script>
<body>
<br/>
這是頁(yè)面類(lèi)容
<script type="text/javascript">
document.write("<a href='http://www.itcast.cn'>傳智播客</a>");
</script>
這是頁(yè)面類(lèi)容
</body>
</html>
Script也可以寫(xiě)在body里面
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<script type="text/javascript">
document.write("<a href='http://www.itcast.cn'>傳智播客</a>");
</script>
<body>
<br/>
這是頁(yè)面類(lèi)容
<script type="text/javascript">
document.write("<a href='http://www.itcast.cn'>傳智播客</a>");
</script>
<input type="button" value="hello" οnclick="document.write('hello')"/>
這是頁(yè)面類(lèi)容
</body>
</html>
點(diǎn)擊hello按鈕感覺(jué)會(huì)在新頁(yè)面打印出來(lái),但其實(shí)還是當(dāng)前的頁(yè)面只有在頁(yè)面加載
過(guò)程中write才會(huì)與原有內(nèi)容融合在一起(onlick頁(yè)面已經(jīng)加載完成)
廣告聯(lián)盟
http://news.baidu.com/newscode.html 百度廣告獲取廣告代碼
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type=text/css> div{font-size:12px;font-family:arial}.baidu{font-size:14px;line-height:24px;font-family:arial} a,a:link{color:#0000cc;}
.baidu span{color:#6f6f6f;font-size:12px} a.more{color:#008000;}a.blk{color:#000;font-weight:bold;}</style>
</head>
<script type="text/javascript">
document.write("<a href='http://www.itcast.cn'>傳智播客</a>");
</script>
<body>
<br/>
這是頁(yè)面類(lèi)容
<script language="JavaScript" type="text/JavaScript" src="http://news.baidu.com/ns?word=title%3A%E8%AE%A1%E7%AE%97%E6%9C%BA&tn=newsfcu&from=news&cl=2&rn=5&ct=0"></script>
<script type="text/javascript">
document.write("<a href='http://www.itcast.cn'>傳智播客</a>");
</script>
<input type="button" value="hello" οnclick="document.write('hello')"/>
這是頁(yè)面類(lèi)容
</body>
</html>
可以直接在記事本里面打開(kāi)別人網(wǎng)站的js代碼
http://news.baidu.com/ns?word=title%3A%E8%AE%A1%E7%AE%97%E6%9C%BA&tn=newsfcu&from=news&cl=2&rn=5&ct=0
Cnzz數(shù)據(jù)專(zhuān)家
document方法
getElementById方法(非常常用),根據(jù)元素的Id獲得對(duì)象,網(wǎng)頁(yè)中id不能
重復(fù)。也可以直接通過(guò)元素的id來(lái)引用元素,但是有有效范圍、
form1.textbox1之類(lèi)的問(wèn)題,因此不建議直接通過(guò)id操作元素,而是通過(guò)
getElementById
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function btnClick() {
alert(textbox1.value);
}
</script>
</head>
<body>
<input type="text" id="textbox1" />
<input type="button" value="點(diǎn)一下" οnclick="btnClick()"/>
</body>
</html>
通過(guò)控件的id取value值但不推薦這樣使用textbox1.value會(huì)出現(xiàn)無(wú)法取到的情況
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function btnClick() {
alert(textbox1.value);
}
function btnClick2() {
alert(textbox2.value);
}
</script>
</head>
<body>
<input type="text" id="textbox1" />
<input type="button" value="點(diǎn)一下" οnclick="btnClick()"/>
<form action="Default.aspx">
<input type="text" id="textbox2" />
<input type="button" value="點(diǎn)一下" οnclick="btnClick2()"/>
</form>
</body>
</html>
錯(cuò)誤原因:input放在了form中,引用時(shí)不能直接引用input的id
正確用法:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function btnClick() {
alert(textbox1.value);
}
function btnClick2() {
// alert(textbox2.value);
alert(form1.textbox2.value);
}
</script>
</head>
<body>
<input type="text" id="textbox1" />
<input type="button" value="點(diǎn)一下" οnclick="btnClick()"/>
<form action="Default.aspx" id="form1">
<input type="text" id="textbox2" />
<input type="button" value="點(diǎn)一下" οnclick="btnClick2()"/>
</form>
</body>
</html>
這樣使用每次要找到form的id,再通過(guò)這個(gè)id來(lái)找控件的id略顯麻煩,因此推薦使用另外一種方法:getElementById(‘控件名’)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function btnClick() {
var txt = document.getElementById("textbox1");
alert(txt.value);
// alert(textbox1.value);
}
function btnClick2() {
// alert(textbox2.value);
// alert(form1.textbox2.value);
var txt = document.getElementById("textbox2");
alert(txt.value);
}
</script>
</head>
<body>
<input type="text" id="textbox1" />
<input type="button" value="點(diǎn)一下" οnclick="btnClick()"/>
<form action="Default.aspx" id="form1">
<input type="text" id="textbox2" />
<input type="button" value="點(diǎn)一下" οnclick="btnClick2()"/>
</form>
</body>
</html>
(*)getElementsByName,根據(jù)元素的name獲得對(duì)象,由于頁(yè)面中元素
的name可以重復(fù),比如多個(gè)RadioButton的name一樣,因此
getElementsByName返回值是對(duì)象數(shù)組。
易錯(cuò)點(diǎn):
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function btnClick() {
var radios=document.getElementsByName("gender");
for(var r in radios)
{
alert(r.value);
}
}
</script>
</head>
<body>
<input type="radio" value="男" name="gender"/>男
<input type="radio" value="女" name="gender"/>女
<input type="radio" value="未知" name="gender"/>未知
<input type="button" value="click" οnclick="btnClick()"/>
</body>
</html>
正確方法:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function btnClick() {
var radios = document.getElementsByName("gender");
// for(var r in radios)
// {
// alert(r.value);
// }
// }在js中不像C#中的foreach,并不會(huì)遍歷每個(gè)元素,而是遍歷的key
for (var i = 0; i < radios.length; i++) {
var radio = radios[i];
alert(radio.value);
}
}
</script>
</head>
<body>
<input type="radio" value="男" name="gender"/>男
<input type="radio" value="女" name="gender"/>女
<input type="radio" value="未知" name="gender"/>未知
<input type="button" value="click" οnclick="btnClick()"/>
</body>
</html>
(*)getElementsByTagName,獲得指定標(biāo)簽名稱(chēng)的元素?cái)?shù)組,比如
getElementsByTagName("p")可以獲得所有的<p>標(biāo)簽。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function btnClick() {
var radios = document.getElementsByName("gender");
// for(var r in radios)
// {
// alert(r.value);
// }
// }在js中不像C#中的foreach,并不會(huì)遍歷每個(gè)元素,而是遍歷的key
for (var i = 0; i < radios.length; i++) {
var radio = radios[i];
alert(radio.value);
}
}
function btnClick2() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
input.value = "hello";
}
}
</script>
</head>
<body>
<input type="radio" value="男" name="gender"/>男
<input type="radio" value="女" name="gender"/>女
<input type="radio" value="未知" name="gender"/>未知
<input type="button" value="click" οnclick="btnClick()"/>
<input type="text"/>
<input type="text"/>
<input type="text"/>
<input type="text"/>
<input type="text"/>
<input type="button" value="bytagname" οnclick="btnClick2()"/>
</body>
</html>
案例:點(diǎn)擊一個(gè)按鈕,被點(diǎn)擊的按鈕顯示“嗚嗚”,其他按鈕顯示“哈哈”。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function initEvent() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length;i++ ) {
var input = inputs[i];
input.onclick = btnClick;
}
}
function btnClick() {
alert("點(diǎn)了!");
}
</script>
</head>
<body οnlοad="initEvent()">
<input type="button" value="哈哈"/>
<input type="button" value="哈哈"/>
<input type="button" value="哈哈"/>
<input type="button" value="哈哈"/>
<input type="button" value="哈哈"/>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function initEvent() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length;i++ ) {
var input = inputs[i];
// input.onclick = btnClick;
// window.event.srcElement,獲得引發(fā)事件的控件
input.onclick = btnClick;
}
}
function btnClick() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
var input = inputs[i];
if (input == window.event.srcElement) {
input.value = "嗚嗚";
}
else {
input.value = "哈哈";
}
}
}
// function btnClick() {
// alert("點(diǎn)了!");
// }
</script>
</head>
<body οnlοad="initEvent()">
<input type="button" value="哈哈"/>
<input type="button" value="哈哈"/>
<input type="button" value="哈哈"/>
<input type="button" value="哈哈"/>
<input type="button" value="哈哈"/>
</body>
</html>
案例:十秒鐘后協(xié)議文本框下的注冊(cè)按鈕才能點(diǎn)擊,時(shí)鐘倒數(shù)。
(btn.disabled = true )
思路:1.注冊(cè)按鈕初始狀態(tài)為不可用
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>注冊(cè)</title>
<script type="text/javascript">
</script>
</head>
<body>
<textarea></textarea>
<input type="button" value="同意" disabled="disabled"/>
</body>
</html>
2. 啟動(dòng)定時(shí)器setInterval,1秒鐘運(yùn)行一次CountDown的方法,設(shè)定初始值10的全局變量,在
countDonw方法中對(duì)全局變量倒數(shù)
3. 將倒數(shù)的值寫(xiě)到按鈕上(請(qǐng)仔細(xì)閱讀協(xié)議(還剩8秒))
4. 直到全局變量的值<=0時(shí)按鈕可用,并且設(shè)定按鈕上文本為同意
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>注冊(cè)</title>
<script type="text/javascript">
var leftScconds = 10;
var intervalId;
function CountDown() {
var btnReg = document.getElementById("btnReg");
if(btnReg)//如果網(wǎng)頁(yè)的加載速度非常慢的話,可能定時(shí)器運(yùn)行的時(shí)候控件還沒(méi)有加載!
{
if (leftScconds <= 0) {
btnReg.value = "同意";
btnReg.disabled = ""; //或者btnReg.disabled=false;
clearInterval(intervalId);//停止計(jì)時(shí)器
}
else {
btnReg.value = "請(qǐng)仔細(xì)閱讀協(xié)議(還剩" + leftScconds + "秒)";
leftScconds--;
}
}
}
intervalId=setInterval("CountDown()", 1000);
</script>
</head>
<body>
<textarea></textarea>
<input type="button" value="同意" disabled="disabled" id="btnReg"/ >
</body>
</html>
練習(xí):加法計(jì)算器。兩個(gè)文本框中輸入數(shù)字,點(diǎn)擊【=】按鈕將相加的結(jié)果
放到第三個(gè)文本框中。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function calClick() {
var value1 = document.getElementById("text1").value;
var value2 = document.getElementById("text2").value;
document.getElementById("text3").value = value1 + value2;
}
</script>
</head>
<body>
<input type="text" id="text1"/>+<input type="text" id="text2"/>=
<input type="button" οnclick="calClick()" value="="/><input type="text" id="text3" readonly="readonly"/>
</body>
</html>
執(zhí)行的結(jié)果為拼接字符串
正確的做法為:(轉(zhuǎn)換為int類(lèi)型)
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function calClick() {
var value1 = document.getElementById("text1").value;
var value2 = document.getElementById("text2").value;
value1 = parseInt(value1, 10);
value2= parseInt(value2, 10);
document.getElementById("text3").value = value1 + value2;
}
</script>
</head>
<body>
<input type="text" id="text1"/>+<input type="text" id="text2"/>=
<input type="button" οnclick="calClick()" value="="/><input type="text" id="text3" readonly="readonly"/>
</body>
</html>
注意parseInt(參數(shù)一,參數(shù)二)
參數(shù)一為要轉(zhuǎn)換的數(shù),參數(shù)二為結(jié)果的進(jìn)制數(shù)(這里是十進(jìn)制,所以就是10)
練習(xí):美女時(shí)鐘。
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function ReFlash() {
var imgMM = document.getElementById("imgMM");
if (!imgMM) {
return;
}
else {
imgMM.src = "Images/1.jpg";
}
}
setInterval("ReFlash()",1000);
</script>
</head>
<body>
<img id="imgMM" src=""/>
</body>
</html>
完整代碼如下:
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function ReFlash() {
var imgMM = document.getElementById("imgMM");
if (!imgMM) {
return;
}
// else {
// imgMM.src = "Images/1.jpg";
// }
var now = new Date();
var filename = now.getHours() + "_" + now.getSeconds() + ".jpg";
imgMM.src = "mm/" + filename;
}
setInterval("ReFlash()",1000);
</script>
</head>
<body>
<img id="imgMM" src=""/>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<script type="text/javascript">
function Fill2Len(i) {
if (i < 10) {
return "0" + i;
}
else {
return i;
}
}
function ReFlash() {
var imgMM = document.getElementById("imgMM");
if (!imgMM) {
return;
}
// else {
// imgMM.src = "Images/1.jpg";
// }
var now = new Date();
var filename = Fill2Len(now.getHours()) + "_" + Fill2Len(now.getSeconds()) + ".jpg";
imgMM.src = "mm/" + filename;
}
setInterval("ReFlash()",1000);
</script>
</head>
<body οnlοad="ReFlash()">
<img id="imgMM" src=""/>
</body>
</html>
轉(zhuǎn)載于:https://www.cnblogs.com/seclusively/p/3789487.html
總結(jié)
以上是生活随笔為你收集整理的跟着杨中科学习asp.net之dom的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 一维二维_Excel二维数据转一维,2种
- 下一篇: 单例设计模式-懒汉式(线程不安全)