Javascript(一):Javascript与页面控件
前两天和哥们在做项目时遇到一个问题,就是读服务器控件。在和他讨论这个问题时,觉得自己应该先把此类的东东做个整理以方便以后的应用。
个人认为 ,Javascript对控件操作,莫过于拿到控件对象,然后操作其属性。
那么在此先学自个学习一下如何拿到控件吧。
不管是何咱控件,要想被 Javascript拿到,那么他只能是在客户端上被拿到。而且拿要想获得控件对象,肯定需要知道这个控件到底有什么标识。
个人认为控件的标识可分为四种。
(1) id 算是控件在文件中的唯一标识,在人的角度考虑,也就是身份证号了。
(2) name 控件的名字吧,在人的角度讲,就是人名了,可惜重名的人太多了,很容易认错人,我曾经试过在百度上搜自己的名字,结果一搜上千条的记录出来了,而头条就是杀人犯,让我有点无法接受。
(3) tagname 这个更不靠谱了,就像说这人是黄种人,白种人或者黑种人一样,这根一锅里炒红豆绿豆然后把绿豆红豆分开一样,当然锅里就俩豆还是很容易做到的。
(4) 其他属性,更像个人的外形。要是长个像哈得波特一样的闪电伤疤可能会更好些。
方法嘛具体如下了:
现做个假设,页面内容如下
<!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>
</head>
<body>
<form id="formTest" name="formName">
<input type="text" id="txtTest" name="txtName" value="txtValue" style="width: 200px; height: 20px;" />
<!--<input type="text" id="txtTest2" name="txtName" value="" style="width: 200px; height: 20px;" />-->
</form>
</body>
</html>
那么拿到id为textbox的方法大体有以下几咱方法,当然肯定还有很多,只是我不知道,没办法,人太笨。
var test;
1.通过id拿到对象
test = document.getElementById("txtTest");
test = document.all.txtTest;
test = document.all("txtTest");
test = document.body.all.txtTest;
test = formTest.all.txtTest;
test = formTest.txtTest;
test = formTest("txtTest");
test = formTest.all.txtTest;
2.通过name拿到对象
test = document.getElementsByName("txtName"); //得到的是 name为 "txtName"的对象集合。
test = document.all.txtName; //当document下只有一个对象的name为"txtName"时 ,获得的是这个对象,否则获得的是对象集合
test = document.all("txtName"); //当document下只有一个对象的name为"txtName"时 ,获得的是这个对象,否则获得的是对象集合
test = formTest.txtName; //当form下只有一个对象的name为"txtName"时 ,获得的是这个对象,否则获得的是对象集合
test = formTest("txtName"); //当form下只有一个对象的name为"txtName"时 ,获得的是这个对象,否则获得的是对象集合
test = formTest.all.txtName; //当form下只有一个对象的name为"txtName"时 ,获得的是这个对象,否则获得的是对象集合
test = formTest.all("txtName");//同上
//use form's name
test = formName.txtName; //当form下只有一个对象的name为"txtName"时 ,获得的是这个对象,否则获得的是对象集合
test = formName("txtName");//同上
3.通过 tagname及控件特有属性值获得对象
var testCollection = document.getElementsByTagName("input"); //获得document中所有tagname是 input的对象的集合
//通过循环找出 符合条件的对象
for (var i = 0; i < testCollection.length; i++) {
if (testCollection[i].type == "text" && testCollection.value == "txtValue") {
test = testCollection[i];
}
}
知道的就这么多了。报歉,哪位哥哥姐姐知道更多的不妨跟小弟说一下,在下感游涕零……
至于关于获取服务器控件的方法,我再学学先……