JavaScript(JS)之Javascript对象DOM(五)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaScript(JS)之Javascript对象DOM(五),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含10054字,纯文字阅读大概需要15分钟。
内容图文
https://www.cnblogs.com/haiyan123/p/7653032.html
一、JS中for循环遍历测试
for循环遍历有两种
第一种:是有条件的那种,例如 for(var i = 0;i<ele.length;i++){}
第二种:for (var i in li ){}
现在我们来说一下测试一下第二种(数组和obj的)
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title >Title</title></head><body><script>var arr = [11,22,33,44,55]; var obj = {‘username‘:‘zzz‘,‘agr‘:20}; //js中的这个类似字典的不叫字典,而是一个对象for (var i in obj){ console.log(i); //拿到的是键 console.log(obj[i]) //值 } for (var j in arr){ console.log(j); //拿到索引 console.log(arr[j]) //拿到值 } </script></body></html> 测试for循环
二、获取value属性值
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title >Title</title></head><body><input type="text" id="c1"><select name="pro" id="s1"><option value="1">北京</option><option value="2">上海</option><option value="3">广东</option><option value="4">湖南</option></select><button>show</button><script>var ele_button = document.getElementsByTagName("button")[0]; ele_button.onclick =function () { var ele_input = document.getElementById("c1"); var ele_select = document.getElementById("s1"); console.log(ele_select.value); ele_input.value = ele_select[ele_select.value -1].innerText; } </script></body></html>
三、二级联动
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title >Title</title></head><body><select name="" id="provinces"><option value="">请输入省份</option><!--<option value="1">北京</option>--><!--<option value="2">上海</option>--><!--<option value="3">广东</option>--><!--<option value="4">湖南</option>--></select><select name="" id="citys"><option value="">请选择城市</option></select><script>// var a={name:"alex"};// var b={"name":"alex"};// console.log(a.name); // alex// console.log(b["name"]); // alex// data={"河北省":["石家庄","廊坊"],"山西":["晋城","大同"],"陕西":["西安","延安"]};// console.log(data); // {河北省: Array(2), 山西: Array(2), 陕西: Array(2)}// console.log(typeof data); // object// console.log(data["河北省"]); // (2) ["石家庄", "廊坊"]// console.log(data.河北省); // (2) ["石家庄", "廊坊"]// // for (var i in data) {// console.log(i); // 键 河北省 。。。// console.log(data[i]);// } data={"河北省":["石家庄","廊坊"],"山西":["晋城","大同"],"陕西":["西安","延安"]}; var pro_ele=document.getElementById("provinces"); var city_ele=document.getElementById("citys") for (var i in data) { var ele=document.createElement("option"); ele.innerHTML = i; pro_ele.appendChild(ele); } pro_ele.onchange =function () { console.log(this.selectedIndex); console.log(this.options[this.selectedIndex]); var citys = data[this.options[this.selectedIndex].innerHTML]; console.log(citys); city_ele.options.length=1; // 请选择城市for (var i =0; i < citys.length; i++) { var ele=document.createElement("option"); ele.innerHTML = citys[i]; city_ele.appendChild(ele); } } </script></body></html>
四、表格示例(全选,反选,取消)
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title >Title</title></head><body><button class="select" onclick="SelectAll()">全选</button><button class="reserve" onclick="Reverse()">反选</button><button class="cancel" onclick="Cancel()">取消</button><table border="1"><tr><td><input type="checkbox" class="check"></td><td>111</td><td>222</td><td>333</td></tr><tr><td><input type="checkbox" class="check"></td><td>111</td><td>222</td><td>333</td></tr><tr><td><input type="checkbox" class="check"></td><td>111</td><td>222</td><td>333</td></tr><tr><td><input type="checkbox" class="check"></td><td>111</td><td>222</td><td>333</td></tr></table><script>function SelectAll() { var inputs = document.getElementsByTagName("input"); for (var i=0; i < inputs.length; i ++) { inputs[i].checked =true; } } function Cancel() { var inputs = document.getElementsByTagName("input"); for (var i=0; i < inputs.length; i ++) { inputs[i].checked =false; } } function Reverse() { var inputs = document.getElementsByTagName("input"); for (var i=0; i < inputs.length; i ++) { inputs[i].checked =!inputs[i].checked; } } </script></body></html>
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title >表格示例</title></head><body><button class="select">全选</button><button class="reserve">反选</button><button class="cancel">取消</button><table border="1"><tr><td><input type="checkbox" class="check"></td><td>111</td><td>222</td><td>333</td></tr><tr><td><input type="checkbox" class="check"></td><td>111</td><td>222</td><td>333</td></tr><tr><td><input type="checkbox" class="check"></td><td>111</td><td>222</td><td>333</td></tr><tr><td><input type="checkbox" class="check"></td><td>111</td><td>222</td><td>333</td></tr></table><script>// 方式一:分别给每个button增加事件var ele_select = document.getElementsByClassName(‘select‘)[0]; var ele_reserve = document.getElementsByClassName(‘reserve‘)[0]; var ele_cancel = document.getElementsByClassName(‘cancel‘)[0]; var ele_input = document.getElementsByClassName(‘check‘); //全选 ele_select.onclick =function () { for (var i =0; i < ele_input.length; i++) { //添加一个checked属性 ele_input[i].checked =‘checked‘ } }; //取消 ele_cancel.onclick =function () { for (var i =0;i<ele_input.length;i++){ //删除checked属性,直接设置为空就行了 ele_input[i].checked =‘‘ } }; //反选 ele_reserve.onclick =function () { for (var i =0; i < ele_input.length; i++) { var ele = ele_input[i]; if (ele.checked) {//如果选中了就设置checked为空 ele.checked =‘‘; } else {//如果没有就设置checked = checked ele.checked =‘checked‘; } } }; //方式二:方式一的优化循环增加事件 // var ele_button = document.getElementsByTagName(‘button‘); // var ele_input = document.getElementsByClassName(‘check‘); // for(var i=0;i<ele_button.length;i++) { // ele_button[i].onclick = function () { // if (this.innerHTML == ‘全选‘) { // for (var i = 0; i < ele_input.length; i++) { // //添加一个checked属性 // ele_input[i].checked = ‘checked‘ // } // } // else if (this.innerHTML == ‘取消‘) { // for (var i = 0; i < ele_input.length; i++) { // //删除checked属性,直接设置为空就行了 // ele_input[i].checked = ‘‘ // } // } // else { // for (var i = 0; i < ele_input.length; i++) { // var ele = ele_input[i]; // if (ele.checked) {//如果选中了就设置checked为空 // ele.checked = ‘‘; // } // else {//如果没有就设置checked = checked // ele.checked = ‘checked‘; // } // } // } // } // }</script></body></html>
五、模态对话框
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title >Title</title><style> .content{ height: 1800px; background-color: white;} .shade{ position: fixed; top:0; left: 0; right: 0; bottom: 0; background-color: gray; opacity: 0.7;} .model{ width: 200px; height: 200px; background-color: bisque; position: absolute; top:50%; left: 50%; margin-top: -100px; margin-left: -100px;} .hide { display: none;}</style></head><body><div class="content"><button onclick="show()">show</button> hellohellohellohellohellohellohellohellohellohellohellohello </div><div class="shade hide"></div><div class="model hide"><button onclick="cancel()">cancel</button></div><script>function show() { var ele_shade = document.getElementsByClassName("shade")[0]; var ele_model=document.getElementsByClassName("model")[0]; ele_shade.classList.remove("hide"); ele_model.classList.remove("hide"); } function cancel() { var ele_shade = document.getElementsByClassName("shade")[0]; var ele_model= document.getElementsByClassName("model")[0]; ele_shade.classList.add("hide"); ele_model.classList.add("hide"); } </script></body></html>
六、搜索框
<! DOCTYPE html > < html lang ="en" > < head > < meta charset ="UTF-8" > < title >模拟placeholder属性的功能</title></head><body><input type="text" placeholder="username" id="submit"><input type="text" value="username" id="submit1"><script>// var ele = document.getElementById(‘submit1‘);var ele = document.getElementById(‘submit1‘); ele.onfocus =function () { //先获取焦点,点击输入框就获取到焦点,光标一上去就把值设成空this.value="" }; ele.onblur =function () { // 当光标不点击那个输入框的时候就失去焦点了//当失去焦点的时候,判断当前的那个值是不是为空,是否含有空格 // 如果为空或者有空格,用trim()去掉空格。然后赋值为usernameif (this.value.trim()==""){ this.value=‘username‘ } } </script></body></html>
js的作用域
1. 全局作用域(Global Scope)
在代码中任何地方都能访问到的对象拥有全局作用域,一般来说一下几种情形拥有全局作用域:
(1)最外层函数和在最外层函数外面定义的变量拥有全局作用域
var name="yuan";
function foo(){
var age=23;
function inner(){
console.log(age);
}
inner();
}
console.log(name); // yuan
//console.log(age); // Uncaught ReferenceError: age is not defined
foo(); // 23
inner();
(2)所有末定义直接赋值的变量自动声明为拥有全局作用域,例如:
var name="yuan";
function foo(){
age=23;
var sex="male"
}
foo();
console.log(age); // 23
console.log(sex); // sex is not defined
(3)所有window对象的属性拥有全局作用域
一般情况下,window对象的内置属性都都拥有全局作用域,例如window.alert()、window.location、window.top等等。
2. 局部作用域(Local Scope)
和全局作用域相反,局部作用域一般只在固定的代码片段内可访问到,最常见的例如函数内部,所有在一些地方也会看到有人把这种作用域成为函数作用域.
如示例1中的age与inner都只有局部作用域。(js中if、for没有自己的作用域)
原文:https://www.cnblogs.com/xiangtingshen/p/10558871.html
内容总结
以上是互联网集市为您收集整理的JavaScript(JS)之Javascript对象DOM(五)全部内容,希望文章能够帮你解决JavaScript(JS)之Javascript对象DOM(五)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。