当前位置: 首页 > news >正文

合肥网站建设模板辽宁住房建设部网站

合肥网站建设模板,辽宁住房建设部网站,南昌网站建设服务器,深圳市建筑设计研究总院有限公司一.前言 前面我们讲了一下js的基础语法#xff0c;但是这些还是远远不够的#xff0c;我们要想操作标签#xff0c;实现一个动态且好看的页面#xff0c;就得学会BOM和DOM#xff0c;这些都是浏览器和页面的#xff0c;这样我们才能实现一个好看的页面 二.BOM对象 BOM…一.前言 前面我们讲了一下js的基础语法但是这些还是远远不够的我们要想操作标签实现一个动态且好看的页面就得学会BOM和DOM这些都是浏览器和页面的这样我们才能实现一个好看的页面 二.BOM对象 BOM:Broswer object model,即浏览器提供我们开发者在javascript用于操作浏览器的对象。 2.1 window对象 窗口方法 // js中最大的一个对象.整个浏览器窗口出现的所有东西都是window对象的内容. console.log( window ); // alert()  弹出一个警告框 window.alert(hello); //confirm  弹出一个确认框,点击确认,返回true, 点击取消,返回false var ret confirm(您确认要删除当前文件么?); console.log( ret  ); // 弹出一个消息输入框,当点击确认以后,则返回可以接收到用户在输入框填写的内容.如果点击取消,则返回null var ret prompt(请输入一个内容,默认值); console.log( ret ); // close() 关闭当前浏览器窗口 window.close(); //打开一个新的浏览器窗口 window.open(http://www.baidu.com,_blank,width800px,height500px,left200px,top200px; 这些都很简单我们看一眼过就行了 定时方法 setInterval() 方法会不停地调用函数直到 clearInterval() 被调用或窗口被关闭。由 setInterval() 返回的 ID 值可用作 clearInterval() 方法的参数。而setTimeout是在指定的毫秒数后调用code一次 // 设置循环定时器 var ID window.setInterval(code,millisec)   // 每millisec毫秒执行一次code // 取消循环定时器 window.clearInterval(ID); // 设置单次定时器 var ID window.setTimeout(code,millisec) // millisec毫秒后执行code一次 // 取消单次定时器 window.clearTimeout(ID); 这个也是非常的简单但是我们会给大家一个定时器的小案例  !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head bodyinput idID1 typetext button onclickbegin()开始/button button onclickend()暂停/buttonscriptfunction showtime(){eledocument.getElementById(ID1)ele.valuenew Date().toLocaleString()}var idfunction begin(){if(idundefined){showtime()idsetInterval(showtime,1000)console.log(id)}}function end(){clearInterval(id)idundefined;}/script/body /html 最后结果长这样想知道效果自己去测试就好了这里为什么要判断一下idundefined呢这是为了防止开多个定时器大家开控制台看打印id就知道了当然这里有很多看不懂的大家等看完dom就都能学会啦 2.2 Location ( 地址栏)对象 这里给个案例自己品 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/title /head body button onclickfunc1()查看Location对象/button button onclickfunc2()跳转到往日情怀酿作酒的博客~/button button onclickfunc3()F5/button scriptfunction func1(){console.log( location );}// 地址栏对象控制和操作地址栏// 所谓的地址就是当前页面所在地址// 地址结构:// 协议://域名:端口/路径/文件名?查询字符串#锚点console.log( 协议${location.protocol} );console.log( 端口${location.port} );console.log( 域名${location.hostname} );console.log( 域名:端口${location.host} );console.log( 路径${location.pathname} );console.log( 查询字符串${location.search} );console.log(完整的地址信息${location.href});function func2(){// location.hrefhttps://blog.csdn.net/weixin_74178589?spm1011.2124.3001.5343; // 页面跳转location.assign(https://blog.csdn.net/weixin_74178589?spm1011.2124.3001.5343); // 页面跳转}function func3(){location.reload(); // 刷新页面} /script /body /html 2.3 本地存储对象  使用存储对象的过程中, 对象数据会根据域名端口进行保存的,所以 js不能获取当前页面以外其他域名端口保存到本地的数据。也就是说,我们存储对象获取数据只能是自己当前端口或者域名下曾经设置过的数据,一旦端口或者域名改变,则无法获取原来的数据。 localStorage    本地永久存储   localStorage.setItem(变量名,变量值);   保存一个数据到存储对象   localStorage.变量名 变量值               保存一个数据到存储对象   localStorage.getItem(变量名)   获取存储对象中保存的指定变量对应的数据   localStorage.变量名              获取存储对象中保存的指定变量对应的数据   localStorage.removeItem(变量名)   从存储对象中删除一个指定变量对应的数据   localStorage.clear()               从存储对象中删除所有数据 sessionStorage  本地会话存储   sessionStorage.setItem(变量名,变量值);   保存一个数据到存储对象   sessionStorage.变量名 变量值               保存一个数据到存储对象   sessionStorage.getItem(变量名)   获取存储对象中保存的指定变量对应的数据   sessionStorage.变量名              获取存储对象中保存的指定变量对应的数据   sessionStorage.removeItem(变量名)   从存储对象中删除一个指定变量对应的数据   sessionStorage.clear()               从存储对象中删除所有数据 localStorage和sessionStorage的区别 1、localStorage和sessionStorage一样都是用来存储客户端临时信息的对象。 2、他们均只能存储字符串类型的对象虽然规范中可以存储其他原生类型的对象但是目前为止没有浏览器对其进行实现。 3、localStorage生命周期是永久这意味着除非用户显示在浏览器提供的UI上清除localStorage信息否则这些信息将永远存在。sessionStorage生命周期为当前窗口或标签页一旦窗口或标签页被永久关闭了那么所有通过sessionStorage存储的数据也就被清空了。 4、不同浏览器无法共享localStorage或sessionStorage中的信息。相同浏览器的不同页面间可以共享相同的 localStorage页面属于相同域名和端口但是不同页面或标签页间无法共享sessionStorage的信息。这里需要注意的是页面及标 签页仅指顶级窗口如果一个标签页包含多个iframe标签且他们属于同源页面那么他们之间是可以共享sessionStorage的。 三.DOM对象(JS核心) DOM document Object Model 文档对象模型 整个html文档,会保存一个文档对象document console.log( document ); // 获取当前文档的对象 3.1 查找标签 直接查找标签 document.getElementsByTagName(标签名) document.getElementById(id值) document.getElementsByClassName(类名) 其中getelement返回的是标签对象而getelements返回的是数组对象 导航查找标签 elementNode.parentElement           // 父节点标签元素 elementNode.children                // 所有子标签 elementNode.firstElementChild       // 第一个子标签元素 elementNode.lastElementChild        // 最后一个子标签元素 elementNode.nextElementSibling     // 下一个兄弟标签元素 elementNode.previousElementSibling  // 上一个兄弟标签元素 CSS选择器查找 document.querySelector(css选择器)  //根据css选择符来获取查找到的第一个元素返回标签对象dom对象 document.querySelectorAll(css选择器); // 根据css选择符来获取查找到的所有元素,返回数组 3.2 绑定事件 静态绑定 直接把事件写在标签元素中。 div iddiv οnclickfoo(this)click/div script     function foo(self){           // 形参不能是this,这个self就代表这个标签         console.log(foo函数);         console.log(self);     } /script 动态绑定在js中通过代码获取元素对象,然后给这个对象进行后续绑定。 p idi1往日情怀酿作酒/p script     var eledocument.getElementById(i1);     ele.οnclickfunction(){         console.log(ok);         console.log(this);    // this直接用,代表的就是这个对象     }; /script 多个标签绑定事件 ul   li请关注/li   li往日情怀酿作酒/li   li谢谢/li /ul script   elesdocument.querySelectorAll(ul li)   for(var i0;ieles.length;i){     eles[i].οnclickfunction (){       console.log(this.innerHTML)       // console.log(eles[i].innerHTML) //这个会报错     }   }   // console.log(i) //这里打印i会发现等于3 /script 这个就能体现出this的重要性 3.3 操作标签 标签名 属性1“属性值1” 属性2“属性值2”……文本/标签名  文本操作 div classc1spanclick/span/divscriptvar ele document.querySelector(.c1);ele.onclick function (){// 查看标签文本console.log(this.innerHTML)console.log(this.innerText)// this.innerText往日情怀酿作酒this.innerHTML a hrefhttps://blog.csdn.net/weixin_74178589?spm1011.2124.3001.5343往日情怀酿作酒/a}/script大家可以测试一下发现innerText和innerHTML的区别就是前者是一个纯文本后者会识别标签然后把标签给识别上去 value操作 像input标签select标签以及textarea标签是没有文本的但是显示内容由value属性决定   input idi1 typetextscripteledocument.getElementById(i1);ele.clickfunction (){console.log(this.value)this.value往日情怀酿作酒console.log(this.value)} 这个就是当我们点击文本框的时候文本内容就会改变 css样式操作: h1往日情怀酿作酒/h1scripteledocument.getElementsByTagName(h1);ele[0].οnclickfunction (){this.style.colorred}/script这个就是点击变成红色其实这个也就是操作了节点里面的style属性 属性操作: elementNode.setAttribute(属性名,属性值)     elementNode.getAttribute(属性名)        elementNode.removeAttribute(属性名);  并不是所有属性都可以像value那样操作。 class属性操作** elementNode.className elementNode.classList.add elementNode.classList.remove 因为class是特殊的一个属性所以有专门的方法有了这个就能实现很多功能例如商品 这个就是这么实现的通过改变class属性实现的 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlestyle*{margin: 0;padding: 0;}.tab{width: 800px;height: 300px;/*border: 1px solid red;*/margin: 200px auto;}.tab ul{list-style: none;}.tab-title{background-color: #f7f7f7;border: 1px solid #eee;border-bottom: 1px solid #e4393c;}.tab .tab-title li{display: inline-block;padding: 10px 25px;font-size: 14px;}li.current {background-color: #e4393c;color: #fff;cursor: default;}.hide{display: none;}/style /head bodydiv classtabul classtab-titleli classcurrent index0商品介绍/lili class index1规格与包装/lili class index2售后保障/lili class index3商品评价/li/ulul classtab-contentli商品介绍.../lili classhide规格与包装.../lili classhide售后保障.../lili classhide商品评价.../li/ul /divscriptvar titles document.querySelectorAll(.tab-title li);var contents document.querySelectorAll(.tab-content li);for (var i 0;ititles.length;i){titles[i].onclick function () {// (1) 触发事件标签拥有current样式for (var j 0;jtitles.length;j){titles[j].classList.remove(current)}console.log(this);this.classList.add(current);// (2) 显示点击title对应的详情内容var index this.getAttribute(index);// console.log(this.getAttribute(index));// console.log(contents[index]);for (var z 0;zcontents.length;z){contents[z].classList.add(hide);}contents[index].classList.remove(hide);}}/script/body /html 这个代码直接给大家就不过多赘述了 节点操作 : // 创建节点 document.createElement(标签名) // 插入节点 somenode.appendChild(newnode)             // 追加一个子节点作为最后的子节点 somenode.insertBefore(newnode,某个节点)   // 把增加的节点放到某个节点的前边 // 删除节点 somenode.removeChild()获得要删除的元素通过父元素调用删除 //替换节点 somenode.replaceChild(newnode, 某个节点); !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlestyleimg{display: block;}/style/head bodybutton classadd_btn添加节点/button button classdel_btn删除节点/button button classreplace_btn替换节点/button div classc1h3 classc2往日情怀酿作酒/h3 /divscriptfatherdocument.querySelector(.c1)adddocument.getElementsByClassName(add_btn)[0];deldocument.getElementsByClassName(del_btn)[0];replacedocument.getElementsByClassName(replace_btn)[0]add.onclickfunction (){var eledocument.createElement(h3)ele.innerText往日情怀酿作酒console.log(ele)father.appendChild(ele)}del.onclickfunction (){eledocument.querySelector(.c1).firstElementChildconsole.log(ele)if(ele){father.removeChild(ele)}}replace.onclickfunction (){eledocument.querySelector(.c1 h3:first-of-type)console.log(ele)if(ele){re_eledocument.createElement(img)re_ele.srchttps://www.keaitupian.cn/cjpic/frombd/2/253/3246004806/1427273025.jpgconsole.log(ele)father.replaceChild(re_ele,ele)}}/script/body /html 这个就是很好的一个替换删除的例子  效果大致如下 3.4 常见事件 onload事件 这个就是当我们加载完所有的文档之后触发的举个例子就是当我们把script写在文档的上面如果涉及了dom操作就会因为找不到标签而报错但是当我们把所有代码放在onload里面的话就会有问题啦他会等到加载完文档再执行onload里面的内容 onsubmit事件 于处理表单提交时的操作。当用户提交一个表单时可以通过这个事件执行特定的 JavaScript 代码比如验证输入数据、取消提交等  onchange事件 用于在输入元素如 input, select, 或 textarea的值发生改变时触发。当用户改变输入的内容并移开焦点时该事件会被触发 onmouse事件 onmouse 事件系列是 JavaScript 中用于处理与鼠标相关的交互的事件。这些事件包括 onmouseover、onmouseout、onmousemove、onclick、ondblclick 和 onmousedown、onmouseup 等 onkey事件  onkey 事件系列是 JavaScript 中用于处理与键盘交互的事件。主要的键盘事件包括 onkeydown、onkeyup 和 onkeypress onblur和onfocus事件 onblur 和 onfocus 是 JavaScript 中用于处理元素获得或失去焦点的事件。这些事件通常用于表单元素如输入框和文本区域以增强用户体验 冒泡事件 div classc1     div classc2/div /div script     var ele1 document.querySelector(.c1);     ele1.onclick function () {         alert(c1区域)     };     var ele2 document.querySelector(.c2);     ele2.onclick function (event) {         alert(c2区域);                  // 如何阻止事件冒泡         event.stopPropagation();     } /script 这个就是如果子标签再父标签里面两个都绑定了同一个事件当两个同时触发同一个事件的时候子标签也会触发父标签的内容这样当我们使用event.stopPropagation()就会阻止冒泡事件 四.总结 五.补充  这里给大家一个前端的员工关系代码 !DOCTYPE html html langen headmeta charsetUTF-8titleTitle/titlestyle.box {width: 80%;height: 270px;margin: 20px auto;}.box td{width: 180px;text-align: center;}.box input{padding: 5px 5px;height: 20px;}/style /head bodyh3员工管理系统/h3div classboxtable border1 cellpadding5px theadtrth姓名/thth年龄/thth部门/thth删除/thth编辑/th/tr/theadtbody classtbodytrtd张三/tdtd23/tdtd销售/tdtdbutton onclickdel_tr(this)删除/button/tdtdbutton onclickedit_tr(this)编辑/button/td/trtrtd李四/tdtd21/tdtd销售/tdtdbutton onclickdel_tr(this)删除/button/tdtdbutton onclickedit_tr(this)编辑/button/td/trtrtd王五/tdtd23/tdtd运营/tdtdbutton onclickdel_tr(this)删除/button/tdtdbutton onclickedit_tr(this)编辑/button/td/tr/tbody/table /divfieldset classadd-boxlegend添加员工/legendp姓名input typetext classname/pp年龄input typetext classage/pp部门select name idi1option value销售销售部/optionoption value运营运营部/optionoption value财务财务部/option/select/pbutton classadd添加/button /fieldsetscriptvar add document.querySelector(.add);var tbody document.querySelector(.tbody);add.onclick function () {var inputs document.querySelectorAll(.add-box input);var tr document.createElement(tr);for (var i 0; i inputs.length; i) {var td document.createElement(td); // td/tdtd.innerHTML inputs[i].value;tr.appendChild(td);// 清空inputs[i].value }var s document.querySelector(#i1);td document.createElement(td);td.innerHTML s.value;tr.appendChild(td);// 添加删除按钮var button document.createElement(button);button.innerHTML 删除;button.setAttribute(onclick, del_tr(this));td document.createElement(td);td.appendChild(button);tr.appendChild(td);// 添加编辑按钮button document.createElement(button);button.innerHTML 编辑;button.setAttribute(onclick, edit_tr(this));td document.createElement(td);td.appendChild(button);tr.appendChild(td);tbody.appendChild(tr);};function del_tr(self) {var tr self.parentElement.parentElement;tbody.removeChild(tr);}function edit_tr(self) {self.innerHTML 保存;self.setAttribute(onclick,save(this));console.log(self.parentElement.parentElement.children);var children_td self.parentElement.parentElement.children;for(var i0;ichildren_td.length-2;i){var inp document.createElement(input);inp.setAttribute(type,text);// inp.value children_td[i].innerHTML;inp.setAttribute(value,children_td[i].innerHTML);console.log(::,inp);children_td[i].innerHTML ;children_td[i].appendChild(inp);}}function save(self) {self.innerHTML 编辑;self.setAttribute(onclick,edit_tr(this));var children_td self.parentElement.parentElement.children;for(var i0;ichildren_td.length-2;i){children_td[i].innerHTML children_td[i].firstElementChild.value}}/script/body /html 至此我们js的基础就全部讲完了下一节就和大家说jquery来完善一下我们所学前端的内容
http://www.w-s-a.com/news/41126/

相关文章:

  • 网络公司怎么优化网站百度快速排名技术培训教程
  • 建e室内设计网 周婷站长工具seo综合查询源码
  • 塔式服务器主机建网站定制美瞳网站建设
  • 网站是先解析后备案吗永久免费网站模板
  • wordpress站点演示php根据ip 跳转网站
  • 东莞市凤岗建设局网站网站开发有哪些职位
  • 企业网站手机版模板免费下载辣条网站建设书
  • 南昌网站建设维护vc 做网站源码
  • 网站动态logo怎么做织梦移动端网站怎么做
  • 三亚城乡建设局网站app下载安装官方网站
  • 公司被其它人拿来做网站郑州哪家做网站最好
  • 山东省建设厅官方网站抖音代运营业务介绍
  • 网站制作 牛商网wordpress商城 微信支付
  • 平面设计培训网站建文帝网站建设
  • python网站建设佛山乐从网站建设
  • 网站 免费 托管运营app软件大全
  • 爱网站找不到了网站设计制作要交印花税
  • 分销平台是什么意思网站如何从行为数据进行优化
  • 做网站公司职务做民俗酒店到哪些网站推荐
  • 从0到建网站wordpress导航主题模板下载地址
  • 以3d全景做的网站统计网站的代码
  • 北辰网站建设WordPress换主题文件夹
  • 做网站的合同范文百度分析工具
  • 深圳企业网站制作公司单位注册wordpress发送邮件
  • 兰州专业网站建设团队wordpress 拉取点击数
  • 基于php房产网站开发ppt模板免费下载第一ppt
  • 网站盈利模式分析怎么做山东营销网站建设联系方式
  • 二级网站建设 知乎我的个人主页模板
  • wordpress小说网站模板下载地址百度优化服务
  • 云南网页设计制作seo计费系统源码