select联动遇到的问题
今天写了个select下拉联动,记录下过程中遇到的问题。
dom部分
// 拿到选中项的索引
myselect.selectedIndex
// 拿到选中项的text/value
myselect.options[index].text;
删除元素下的所有子元素
常用三种
//方法一:
while(selectObj.firstChild) {
selectObj.removeChild(selectObj.firstChild);
} //方法二:
selectObj.innerHTML = ""; //方法三:
for(var i=optionNodes.length-1;i>=0;i--) {
selectObj.removeChild(selectObj.lastChild);
}
最后上个select联动的demo代码
点击城市显示对应的大学列表
<select name="city" id="city">
<option value="1">北京</option>
<option value="2">上海</option>
<option value="3">南京</option>
<option value="4">杭州</option>
</select>
<select name="school" id="school">
<option value="1">清华大学</option>
<option value="2">北京大学</option>
<option value="3">中国人民大学</option>
<option value="4">北京师范大学</option>
</select>
const city = document.getElementById("city");
const school = document.getElementById("school"); const cityArr = ["北京", "上海", "南京", "杭州"];
const schoolArr = [
["清华大学", "北京大学", "中国人民大学", "北京师范大学"],
["复旦大学", "上海交通大学", "同济大学", "华东师范大学"],
["南京大学", "东南大学", "中国药科大学", "河海大学"],
["浙江大学", "浙江工业大学", "杭州电子科技大学", "浙江工商大学", "a"]
]; city.addEventListener("change", () => {
// 拿到选中项的索引 myselect.selectedIndex
let cityIndex = city.selectedIndex;
for (let i = 0; i < cityArr.length; i++) {
// 拿到选中项的文本 myselect.options[index].text;
if (city.options[cityIndex].text === cityArr[i]) {
// 删掉所有子元素
while (school.firstChild) {
school.removeChild(school.firstChild);
}
// 把索引对应的学校数组数据加入到页面
for (let y = 0; y < schoolArr[i].length; y++) {
let option = document.createElement("option");
option.innerText = schoolArr[i][y];
school.appendChild(option);
}
}
}
})
select联动遇到的问题的更多相关文章
- 实现select联动效果,数据从后台获取
效果如下: 当type值选择完后,amount值会自动相应填入. 1. 从后台获取数据,为一个数组,里面包含多个对象. <select id="scholarshipTypeSelec ...
- 前端基础之BOM和DOM(响应式布局、计时器、搜索框、select联动)
一.BOM和DOM JavaScript分为 ECMAScript,DOM,BOM. BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进 ...
- JS BOM DOM对象 select联动 计时器 时间 css操作 节点(标签 ) 查找标签 {前端基础之BOM和DOM}
前端基础之BOM和DOM 前戏 到目前为止,我们已经学过了JavaScript的一些简单的语法.但是这些简单的语法,并没有和浏览器有任何交互. 也就是我们还不能制作一些我们经常看到的网页的一些交互,我 ...
- 前端基础之BOM和DOM和三个小示例(计时器、搜索框、select联动)
一.BOM和DOM JavaScript分为 ECMAScript,DOM,BOM. BOM(Browser Object Model)是指浏览器对象模型,它使 JavaScript 有能力与浏览器进 ...
- form表单select联动
下拉列表:二级联动菜单 Select对象的常用属性 options[]:返回所有option组成的一个数组: name:名称 value:option的value的值 length:设置或读取opti ...
- Js实现select联动,option从数据库中读取
待要实现的功能:页面有两个select下拉列表,从第一个select中选择后,在第二个select中出现对应的列表选择,再从第二个select中选择后,在一个text中显示对应的信息.两个select ...
- angular2 select 联动
界面操作触发大分类id改变,根据id获取二级分类的数据进行绑定显示. html: <div style="overflow: hidden;float: left;padding-le ...
- layui select 联动渲染赋值不了数据的问题
今天用 layui做select的时候,数据老是看不到,而且联动的数据是对不上的,看了网上一堆是 最后要用 form.render('select'); 这个是必须的, 但是我用了还是这样,其实是la ...
- layui的select联动 - CSDN博客
要实现联动效果注意两点: 第一要可以监听到select的change事件: 第二异步加载的内容,需要重新渲染后才可以 正常使用. html结构: <form class="layui- ...
随机推荐
- MAC - PhpStorm安装调试环境xdebug
今天下午一直在捣鼓如何用PhpStorm进行调试,查找了许多资料,零零碎碎的,所以自己弄篇文章记录一下步骤. 安装xdebug 使用brew安装xdebug,语法如下 brew install hom ...
- Leetcode题解(七)
24.Swap Nodes in Pairs 题目 看到此题,第一想法是利用两个指针,分别将其所指向的节点的value交换.然后同时向后移动2个节点,代码如下: struct ListNode { i ...
- 设备类型检测大全---userAgent
对各种类型的设备的检测,以及所使用的浏览器的类型 function detect(ua) { var os = this.os = {}; var browser = this.browser = { ...
- javascript循环---性能优化
循环是编程中是最为常见的结构,优化循环是性能优化中很重要的一个部分. 减值迭代:大多数循环使用一个从0开始.增加到某个特定值的迭代器.在很多情况下,从最大值开始,在循环中不断减值的迭代器更加高效. 简 ...
- SharpGL(46)用Billboard绘制头顶文字
CSharpGL(46)用Billboard绘制头顶文字 本文介绍CSharpGL用Billboard绘制头顶文字的方法.效果如下图所示. 下载 CSharpGL已在GitHub开源,欢迎对OpenG ...
- [转载] Storm:最火的流式处理框架
转载自http://www.cnblogs.com/langtianya/p/5199529.html 伴随着信息科技日新月异的发展,信息呈现出爆发式的膨胀,人们获取信息的途径也更加多样.更加便捷,同 ...
- CLR类型设计之方法与构造器
无论学习那门语言都要学习函数体,C#,JAVA,PHP,都会涉及到函数体,而C#的函数体成员并不少,方法和构造器就是函数体成员之一,函数体成员还包括但不限于:方法,属性,构造器,终结器,运算符及索引器 ...
- 【转】RAID 简介
原文:http://wiki.dzsc.com/info/4972.html RAID 的英文全称为 Redundant Array of Inexpensive(或 Independent) Dis ...
- 【Java入门提高篇】Day2 接口
上一篇讲完了抽象类,这一篇主要讲解比抽象类更加抽象的内容--接口. 什么是接口呢?先来看个栗子: /** * @author Frank * @create 2017/11/22 * @descrip ...
- 深入理解立即执行函数(function(){})();
( function(){-} )()和( function (){-} () )是两种javascript立即执行函数的常见写法,要理解立即执行函数,需要先理解一些函数的基本概念. 1,函数声明,函 ...