selectDOM操作详解-select option详细解释
首先从一个面试题来讲,我最近在做前端面试题,题目如下:
完成函数showlmg(),要求能够动态根据下拉列表的选项变化,更新图片的显示
<body>
<script type="text/javascript">
function showImg (oSel) {
};
</script>
<img id="pic" src="img1.jpg" width="200" height="200">
<br/>
<select id="sel" onchange="showImg(this)">
<option value="img1">城市生活</option>
<option value="img2">都市早报</option>
<option value="img3">青山绿水</option>
</select>
</body>
我就顺便找了下有关select的DOM操作方法,发现有的是错的,所以还是得自己动手操作啊
首先基础:
//增加一个新的option:
</script>
<select id="add" style="width:100px;height:30px;font-size: 24px;">
<option value="qi">qi</option>
<option value="test1" selected="true">test</option>
</select>
addValue:<input type="text" id="addValue"/> addText:<input type="text" id="addText"/>
<button id="addOption">addOption</button>
<button id="delOption">delOption</button>
<script>
var add=document.querySelector('#add');
var addOption=document.querySelector('#addOption');
var delOption=document.querySelector('#delOption');
var addValue=document.querySelector('#addValue');
var addText=document.querySelector('#addText');
//获取select#add下的所有option
var allOptions=add.getElementsByTagName('option');
console.log(add.value);//当前选中的option的value值
console.log(add.selectedIndex);//当前选中的option的index索引
console.log(add.options[add.selectedIndex].innerHTML);
console.log(add.options[add.selectedIndex].text);//当前选中的option的text值
addOption.onclick=function(){
//创建一个新的option并赋值
var flag=true;
//这里对addText还可以进行更详细的内容控制,可以用正则进行处理
if(addText.value==''){
addText.setAttribute("placeholder","addText不能为空");
}else{
//将新创建的option添加进select列表
for(var i=0;i<allOptions.length;i++){
if(allOptions[i].text==addText.value){
flag=false;
break;
}else{
flag=true;
}
}
if(flag==true){
var newOption=new Option(addText.value,addValue.value);
add.options.add(newOption);
console.log('添加成功');
}else{
console.log("addText不能重复");
}
}
}
delOption.onclick=function(){
for(var i=0;i<allOptions.length;i++){
if(allOptions[i].selected==true){//如果当前元素被选中
add.options.remove(allOptions[i]);
}
}
}
</script>
//下面回到最初的面试题,相信你也可以想到不同的几个思路吧,那么我尝试几个思路吧
<img id="pic" src="img1.jpg" width="200" height="200" alt="img1.jpg"/>
<br/>
<select id="sel" onchange="showImg(this);">
<option value="img1">城市生活</option>
<option value="img2">都市早报</option>
<option value="img3">青山绿水</option>
</select>
<script>
var pic=document.querySelector('#pic');
var sel=document.querySelector('#sel');
function showImg (oSel) {
pic.src=oSel.options[oSel.selectedIndex].value+'.jpg';
pic.alt=oSel.options[oSel.selectedIndex].value+'.jpg';
};
</script>
selectDOM操作详解-select option详细解释的更多相关文章
- [Android新手区] SQLite 操作详解--SQL语法
该文章完全摘自转自:北大青鸟[Android新手区] SQLite 操作详解--SQL语法 :http://home.bdqn.cn/thread-49363-1-1.html SQLite库可以解 ...
- MySQL 操作详解
MySQL 操作详解 一.实验简介 本节实验中学习并实践 MySQL 上创建数据库.创建表.查找信息等详细的语法及参数使用方法. 二.创建并使用数据库 1. 创建并选择数据库 使用SHOW语句找出服务 ...
- ORM 对表操作 详解
目录 ORM对表操作详解 表结构 ORM对表的 增 删 改 查 基于对象的跨表查询 -- 类似于子查询 基于双下划的跨表查询 -- 连表 join ORM对表的操作示例 正向查 与 反向查 relat ...
- spring配置文件详解--真的蛮详细
spring配置文件详解--真的蛮详细 转自: http://book.51cto.com/art/201004/193743.htm 此处详细的为我们讲解了spring2.5的实现原理,感觉非常 ...
- Java 序列化Serializable详解(附详细例子)
Java 序列化Serializable详解(附详细例子) 1.什么是序列化和反序列化 Serialization(序列化)是一种将对象以一连串的字节描述的过程:反序列化deserialization ...
- python/ORM操作详解
一.python/ORM操作详解 ===================增==================== models.UserInfo.objects.create(title='alex ...
- VC++常用数据类型及其操作详解
原文地址:http://blog.csdn.net/ithomer/article/details/5019367 VC++常用数据类型及其操作详解 一.VC常用数据类型列表 二.常用数据类型转化 2 ...
- keepalived的配置详解(非常详细)
keepalived的配置详解(非常详细) 2017-01-22 15:24 2997人阅读 评论(0) 收藏 举报 分类: 运维学习(25) 转载自:http://blog.csdn.net ...
- Git远程操作详解(转)
转自:http://www.ruanyifeng.com/blog/2014/06/git_remote.html Git远程操作详解 Git是目前最流行的版本管理系统,学会Git几乎成了开发者的 ...
随机推荐
- 一、UC中文调试
一.只支持UC浏览器,版本号6.2.3831.3,复制resources.pak到UC安装目录下,覆盖同名文件即可
- Sass函数:数字函数-percentage()
1.percentage() percentage()函数主要是将一个不带单位的数字转换成百分比形式: >> percentage(.2) 20% >> percentage( ...
- html5 jquery音乐播放器,play()和pause()不起作用
今天在自己写的页面上加上背景音乐,当我点击图片时可以切换 播放/暂停 用jquery写的,方法总是提示没有pause这个方法! 检查了半天最后发现 你使用的是jquery选择器所以返回的是jquery ...
- Hibernate性能提升
1.大数据量批量插入造成Exception in thread "main" java.lang.OutOfMemoryError 内存溢出异常 正常插入: session.sav ...
- 接口需要上一个接口的返回值(unittest)
import unittest,requests ''' 使用unittest框架的时候,这个接口需要上一个接口的返回值 ''' class Test_case(unittest.TestCase): ...
- ubuntu root用户 phpstorm软件不能使用中文输入法
一. 在 ~/.bashrc 里面加入 export GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS="@im ...
- 学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密
学习加密(四)spring boot 使用RSA+AES混合加密,前后端传递参数加解密 技术标签: RSA AES RSA AES 混合加密 整合 前言: 为了提高安全性采用了RS ...
- Ubuntu16.04安装x11VNC远程桌面
1. 安装x11vnc sudo apt-get install x11vnc 2. 设置密码 x11vnc -storepasswd 3. 修改配置文件 sudu vim /lib/systemd/ ...
- 【leetcode】668. Kth Smallest Number in Multiplication Table
题目如下: 解题思路:几乎和[leetcode]719. Find K-th Smallest Pair Distance 的方法一样.只不过一个是减法一个是乘法,还有一点区别是[leetcode]7 ...
- js中的回钓函数,C#中的委托
$(function(){ myfunction(sayHi); }); var sayHi=function(){ alter('你好'); } function myfunction(a){ a( ...