整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

JavaScript 设置和控制下拉菜单

拉菜单的属性

length 表示选项<option>的个数

selected 布尔值,表示选项<option>是否被选中

SelectedIndex 被选中的选项序号,如果没有被选中则为-1,对于多选下拉菜单而言,返回被选中的第一个选项序号。从0开始计数

text 选项的文本(它是option专有的属性)

value 选项的value值

type 下拉菜单的类型。单选返回select-one,多选返回select-multiple

options 获取选项的数组,列如oSelectBox.options[2]表示下拉菜单oSelectBox中的第3项

访问选中项

下拉菜单(单选):

<html>
<head>
<title>下拉菜单,单选</title>
<style>
<!--
form{
padding:0px; margin:0px;
font:14px Arial;
}
-->
</style>
<script language="javascript">
function checkSingle(){
    var oForm = document.forms["myForm1"];
    var oSelectBox = oForm.constellation;
    var iChoice = oSelectBox.selectedIndex; //获取选中项
    alert("您选中了" + oSelectBox.options[iChoice].text); //下拉菜单,单选
}
</script>
</head>
<body>
<form method="post" name="myForm1">
<label for="constellation">星座:</label>
<p>
<select id="constellation" name="constellation">
<option value="Aries" selected="selected">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">双子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">狮子</option>
<option value="Virgo">处女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">双鱼</option>
</select>
</p>
<input type="button" onclick="checkSingle()" value="查看选项" />
</form>
</body>
</html>

下拉菜单(多选):

<html>
<head>
<title>下拉菜单,多选</title>
<style>
<!--
form{
padding:0px; margin:0px;
font:14px Arial;
}
p{
margin:0px; padding:2px;
}
-->
</style>
<script language="javascript">
function checkMultiple(){
var oForm = document.forms["myForm1"];
var oSelectBox = oForm.constellation;
var aChoices = new Array();
//遍历整个下拉菜单
for(var i=0;i<oSelectBox.options.length;i++)
if(oSelectBox.options[i].selected) //如果被选中
aChoices.push(oSelectBox.options[i].text); //压入到数组中,可以用于单选的情况;
alert("您选了:" + aChoices.join()); //输出结果
}
</script>
</head>
<body>
<form method="post" name="myForm1">
<label for="constellation">星座:</label>
<p>
<select id="constellation" name="constellation" multiple="multiple" style="height:180px;">
<option value="Aries">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">双子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">狮子</option>
<option value="Virgo">处女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">双鱼</option>
</select>
</p>
<input type="button" onclick="checkMultiple()" value="查看选项" />
</form>
</body>
</html>

通用的访问下拉菜单选中项的方法:

<script language="javascript">
function getSelectValue(Box){ //Box参数select标签的ID值
    var oForm = document.forms["myForm1"];
    var oSelectBox = oForm.elements[Box]; //根据参数相应的选择下拉菜单
    if(oSelectBox.type == "select-one"){ //判断是单选还是多选
    var iChoice = oSelectBox.selectedIndex; //获取选中项
    alert("单选,您选中了" + oSelectBox.options[iChoice].text);
    }else{
    var aChoices = new Array();
    //遍历整个下拉菜单
    for(var i=0;i<oSelectBox.options.length;i++)
    if(oSelectBox.options[i].selected) //如果被选中
    aChoices.push(oSelectBox.options[i].text); //压入到数组中
    alert("多选,您选了:" + aChoices.join()); //输出结果
    }
}
</script>

函数使用方法:

<select id="constellation1" name="constellation1">
<option value="Aries" selected="selected">白羊</option>
<option value="Taurus">金牛</option>
<option value="Gemini">双子</option>
<option value="Cancer">巨蟹</option>
<option value="Leo">狮子</option>
<option value="Virgo">处女</option>
<option value="Libra">天秤</option>
<option value="Scorpio">天蝎</option>
<option value="Sagittarius">射手</option>
<option value="Capricorn">摩羯</option>
<option value="Aquarius">水瓶</option>
<option value="Pisces">双鱼</option>
</select>
<input type="button" onclick="getSelectValue('constellation1')" value="查看选项" />

添加、替换、删除选项

通过构造函数Option()直接添加value、text等信息,相当方便

var oOption = new Option(text,value,defaultSelected,selected)

defaultSelected为布尔型值:1(true)设置下拉式表单默认值,

selected为布尔值:1(true)表示被选中

最后两项默认值为0,如果不希望添加的选项被默认选中则可以忽略,添加选项时通常将<select>列表的第length项直接设置为新的选项,即在末尾增加。

添加选项:

<html>
<head>
<title>添加选项</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function AddOption(Box){ //添加选项,参数为<select>标签的ID值
    var oForm = document.forms["myForm1"];
    var oBox = oForm.elements[Box];
    var oOption = new Option("乒乓球","Pingpang");
    oBox.options[oBox.options.length] = oOption; //在菜单末尾添加选项
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球类:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">篮球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="添加乒乓球" onclick="AddOption('ball');" />
</form>
</body>
</html>

替换选项

如果下拉菜单中的序号为已经存在了的选项,添加时则会自动替换原有的选项

oBox.options[iNum]=oOption;//替换iNum个选项

<html>
<head>
<title>替换选项</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function ReplaceOption(Box,iNum){ //替换选项,参数Box为<select>的ID值,iNum为替换的选项序号;
var oForm = document.forms["myForm1"];
var oBox = oForm.elements[Box];
var oOption = new Option("乒乓球","Pingpang");
oBox.options[iNum] = oOption; //替换第iNum个选项
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球类:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">篮球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="篮球替换为乒乓球" onclick="ReplaceOption('ball',1);" />
</form>
</body>
</html>

添加选项到具体位置

<html>
<head>
<title>添加到具体位置</title>
<style>
<!--
form{padding:0px; margin:0px; font:14px Arial;}
p{margin:0px; padding:3px;}
input{margin:0px; border:1px solid #000000;}
-->
</style>
<script language="javascript">
function AddOption(Box,iNum){
var oForm = document.forms["myForm1"];
var oBox = oForm.elements[Box];
var oOption = new Option("乒乓球","Pingpang");
oBox.insertBefore(oOption,oBox.options[iNum]);
}
</script>
</head>
<body>
<form method="post" name="myForm1">
球类:
<p>
<select id="ball" name="ball" multiple="multiple">
<option value="Football">足球</option>
<option value="Basketball">篮球</option>
<option value="Volleyball">排球</option>
</select>
</p>
<input type="button" value="添加乒乓球" onclick="AddOption('ball',1);" />
</form>
</body>
</html>

以上代码IE7中虽然在正确的位置插入了选项,但内容却没有显示出来(bug问题)

兼容性更好的代码,使用方法与以上相同;

<script language="javascript">
function AddOption(Box,iNum){
    var oForm = document.forms["myForm1"];
    var oBox = oForm.elements[Box];
    var oOption = new Option("乒乓球","Pingpang");
    //兼容IE7,先添加选项到最后,再移动
    oBox.options[oBox.options.length] = oOption;
    oBox.insertBefore(oOption,oBox.options[iNum]);
}
</script>

注意:IE9已经解决了bug问题

删除下拉菜单的选项:

删除下拉菜单中的某个选项时相对最简单的,只需要将这个选项设置为null即可

bBox.options[iNum]=null;

天遇到个来咨询利用原生的JS代码来修改HTML代码的的童鞋,耐心的给这个童鞋做了解答后,然后整理了一下测试代码,写成文章记录一下,方便以后有同需求的站长们。

目标需求

HTML原始代码

<form action="" method="post" class="form">
 <input id="mm" type="text" >
 <input id="mochu" type="text" onclick="act(this.value)" />
 <input id="mc" type="text" >
</form>

目标要求:

利用JS代码将以上HTML代中的 id 为 mochu 的 input 中的 cnclick 属性去掉

<input id="mochu" type="text" onclick="act(this.value)" />

换成

<input id="mochu" type="text" />

解决方案

利用 JS中dom对象的 outerHTML 属性,可以轻松的解决这个问题

outerHTML:设置或获取对象及其内容的 HTML 形式

例:JS获取元表本身的HTML代码

代码:

<!DOCTYPE html>

<html>

<head>

</head>

<body>

<form action="" method="post" class="form">

<input id="mm" type="text" value="飞鸟慕鱼博客" >

<input id="mochu" type="text" onclick="act(this.value)" value="http://www.feiniaomy.com" />

<input id="mc" type="text" >

</form>

<script>

var html = document.getElementById('mochu').outerHTML;

console.log(html);

</script>

</body>

</html>

打印结果:

例:js修改指定元素的本身的HTML代码

通上面的例子,可以知道 outerHTML 属性可以获取到元素本身的HTML代码,既然可以获取也能设置或修改元素本身的代码

代码:

<!DOCTYPE html>
<html>
<head>
</head>
<body>
<form action="" method="post" class="form">
 <input id="mm" type="text" value="飞鸟慕鱼博客" >
 <input id="mochu" type="text" onclick="act(this.value)"/>
 <input id="mc" type="text" >
</form>
<script>
 var html = document.getElementById('mochu').outerHTML = '<input id="mochu" type="text" value="http://www.feiniaomy.com" />';
</script>
</body>
</html>

运行结果如图所示

补充说明

以下是与 outerHTML 功能相似的属性,下一篇文章会详细说明一下他们的作用与区别

innerHTML:设置或获取对象起始标签和结束标签之间的内容。

innerText:设置或获取位于对象起始和结束标签内的文本

outerHTML:设置或获取对象及其内容的 HTML 形式

outerText:设置或获取对象的文本

、表单:

网页仅有表单才能接收用户输入信息、并将信息提交到服务器进行处理。

表单在网页中主要负责数据采集功能。一个表单有三个基本组成部分: 表单标签:这里面包含了处理表单数据所用CGI程序的URL以及数据提交到服务器的方法。 表单域:包含了文本框、密码框、隐藏域、多行文本框、复选框、单选框、下拉选择框和文件上传框等。 表单按钮:包括提交按钮、复位按钮和一般按钮;用于将数据传送到服务器上的CGI脚本或者取消输入,还可以用表单按钮来控制其他定义了处理脚本的处理工作。

二、制作规范的表单

<form name="表单名称" method="提交的方式:get|post" action="处理表单的服务器地址">

一系列的表单对象

提交按钮:<input type="submit" value="提交" name="sum" />

</form>

注意:表单必须要有提交按钮,作用:当点击提交钮时,会自动将表单中的数据提交到表单action属性所指定的地址进行处理.

三、定义表单对象

1.使用input标签定义表单对象

<input type="元素类型" name="表单对象名称" value="表单对象的值">

1.1 type的类型:

text(文本框)、password(密码框)、checkbox(复选框)、radio(单选按钮)

submit(提交按钮)、reset(重置按钮)、file(文件域)、button(按钮)、

image(图片域:具备提交按钮)、hidden(隐藏域)、

date(日期控件:html5新增的)、number(数字调节器:html新增的)

2.使用select标签定义下拉列表

<select name="sel">

<option value="项值">项文本</option>

<option value="研究生">研究生</option>

<option value="本科">本科</option>

....

</select>

3.使用textarea定义文本域:

<textarea cols="80" rows="8">请输入内容</textarea>

四、常用表单对象的属性

1.文本框:

<input type="text" name="uname" value="Admin" maxlength="最大字符数:15" size="文本框长度:10" readonly="只读:readonly"/>

2.设置单选框和复选框的默认选中

checked="checked"属性

3.使用selected属性设置下拉列表的选中项

<option value="本科" selected="selected">本科</option>

来自网络

五、css(Cascading style sheet):级联(层叠)样式表。

1.作用:修饰html标签

2.优势:

内容与表现分离;

网页的表现统一,容易修改;

丰富的样式,使得页面布局更加灵活;

减少网页的代码量,增加网页的浏览速度,节省网络带宽;

运用独立于页面的CSS,有利于网页被搜索引擎收录。

六、在html文档添加css样式的方法。

1.行内样式:使用标签的style属性添加样式

<标签 style="一系列的样式规则">

样式规则的格式:样式属性:样式属性值;

2.内部样式:使用style标签定义样式

<style type="text/css">

一系的样式选择器(选择器必需先定义,后引用)

</style>

注意:通常情况style标签放在head标签中。

2.1基本选择器分类:类选择器、Id选择器、标签选择器

2.2使用类选择器

定义类选择器

.类选择器名{一系列样式}

引用类选择器:使用标签的class属性引用类选择器名称

2.3使用Id选择器

定义id选择器

#id选择器名{一系列样式规则}

引用ID选择器:使用标签的ID属性引用ID选择器名称

2.4定义标签选择器

标签名称{一系列样式规则}

引用标签选择器:当使用该标签时自动套动标签样式

3.外部样式:

外部样式是将一系列样式选择器定义在外部样式文件(**.css)中

3.1在网页使用link标签引用外部样式文件

<link href="index.css" type="text/css" rel="stylesheet" />

七、样式优先级(就近原则)

行内样式>内部样式>外部样式

id选择器>类选择器>标签选择器

八、高级选择器(复合选择器)

1.层选选择器

1.1后代选择器

定义后代选择器

选择器1 选择器2{一系列样式规则}

使用:必需先用选择器1,再使用选择器2,且选择器存在层次关系

1.2子选择器

定义子选择器

选择器1>选择器2{一系列样式规则}

使用:必需先用选择器1,再使用选择器2,且选择器存在父子关系

1.3相邻兄弟选择器

定义相邻兄弟选择器

选择器1+选择器2{一系列样式规则}

使用:必需先用选择器1,再使用选择器2,且相邻的

1.4通用相邻兄弟选择器

定义通用相邻兄弟选择器

选择器1~选择器2{一系列样式规则}

使用:必需先用选择器1,再使用选择器2,且相邻之后的所有兄弟

2.交集选择器

定义交集选择器

标签选择器类选择器|id选择器

使用:使用标签的同时还引用类或者id选择器

3.并集选择器

定义并集选择器

选择器1,选择器2

使用:使用选择器1 或者 选择器2 都行

九、span标签

文本标签,由内容决定自身大小。