js,mui,jq 操作基本的DOM

时间:2022-10-29 18:22:21

一。HTML

<ul>
  <li>1111111</li>
  <li>22222222</li>
</ul>

二。CSS

li{    
    height: 60px;
    line-height: 60px;
    text-align: center;
    font-size: 14px;
    color: red;
    padding: 4px;
    border: 1px solid black;
  }

1.获取宽高:

  jq:$("div").height();

  js:document.getElementsByTagName("ul")[0].getElementsByTagName("li")[0].offsetHeight;

  mui:获取第一个li高度就是mui("ul li")[0].offsetHeight;第二个li就是mui("ul li")[1].offsetHeight;

  备注:来看看height,scrollHeight,offsetHeight,clientHeight这几个的区别与联系:

      clientHeight:理解为内容可视区域的高度,不包含border,不包含border,不包含border;padding是算在里面的。就是clientHeight=height(设置的高度) + padding - 横向滚动条的高度;

      offsetHeight:offsetHeight = clientHeight + border + 横向滚动条(横向,横向,就是overflow-x:scroll出现的那个滚动条的高度,默认应该都是17px);

      scrollHeight: 经过测试,我得出:scrollHeight=clientHeight+滚动条滚动的距离(高度就是竖直滚动条滚动的距离,宽度就是横向滚动条滚动的距离);

  注意了,注意了:在mui里面,在mui里面,在mui里面,clientHeight,offsetHeight的滚动条是不算高度的,也就是offsetHeight = clientHeight + border。clientHeight=height-border;辣么在mui里面上面的li:offsetHeight=height,clientHeight就是58px;

  总结:1.pc端:clientHeight=height(设置的高度) + padding - 横向滚动条的高度,如果没有滚动条就不减;offsetHeight = clientHeight + border + 横向滚动条,如果没有滚动条就不加;

     2.移动端:2.1  有mui.css:offsetHeight = clientHeight + border。clientHeight=height-border;滚动条不算宽高。     (火狐浏览器里调试一定要设置成响应式设计模式哦,不然得出的高度会让你怀疑人生的)

          2.2  无mui.css,只有<meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,maximum-scale=1,user-scalable=no" />;

              有无滚动条都是:clientHeight=height(设置的高度) + padding;offsetHeight=clientHeight+border;

     其它浏览器版本没测试过,不知道是否是一样的。 

     高度明白了,宽度就是一样的道理。。。    

    还有:js操作dom元素什么时候加[0]。document.getElementById("")这种,因为id在页面中是唯一的一个所以,通过id来寻找的是不用加[0]的,但是document.getElementsByTagName或者document.getElementsByClassName("")这种,页面上可能含有多个,是个数组,所以需要用[ 0 ],相当于索引一样来获取。mui类似。

        jQuery有时候也会有加[0]的时候,比如$("div")[0].innerHtml = "111",是因为innerHtml是一个DOM对象的属性,需要把jQuery对象转换成DOM对象才能使用innerHtml属性,不然会报错。其实jQuery也有自己的innerHtml方法,就是$("div").html(“111”);

2.添加和删除Class属性(mui的添加和删除感觉和原生的一样)

  jq: 添加:$("ul li:nth-child(1) p").addClass("active");

    删除:$("ul li").eq(0).find("p").removeClass("active");

  js: 添加:document.getElementsByTagName("ul")[0].getElementsByTagName("li")[0].classList.add("active")

          删除:document.getElementsByTagName("ul")[0].getElementsByTagName("li")[0].classList.remove("active")

  mui: 添加:mui("ul li")[1].classList.add("active")

     删除:mui("ul li")[1].classList.remove("active")

3.CSS属性的设置和获取:

  jq:设置:$("ul li").css("background","red");

    获取:$("ul li").css("background");

  js: 设置:js设置css样式有以下几种方式:element是获取到的DOM对象

        1.element.style.width="100px"  //style对象下面的属性介绍http://www.w3school.com.cn/jsref/dom_obj_style.asp

        2.element.style.cssText="width:100px;height:100px";//一次可以设置多个属性

        3.element.setAttribute('style', 'height: 100px');

        4.element.style.setProperty("background","red");

    获取:1.element.style.backgroundColor //只能获取内联样式 ,但是backgroundColor非内联也可获取。注:如果是background-color这种,需要写成驼峰样式即backgroundColor。
        2.element.currentStyle.height //IE浏览器获取非内嵌样式

        3.在非IE浏览器:window.getComputedStyle(element,null/伪类).height;如果是element本身,那么第二个参数就是null,如果需要伪类的样式,则第二个参数为伪类。document.defaultView.getComputedStyle(element,null/伪类)一样的。

     备注:做兼容:var a=element.currentStyle ? element.currentStyle : window.getComputedStyle(element, null)。看是否支持currentStyle,也就是看是否处在ie浏览器下。

  mui:

其它的请看我的这篇详细文章

js,mui,jq 操作基本的DOM的更多相关文章

  1. js和jq文档操作

    JS文档操作 一.dom树结构 1.元素节点 2.文本节点 3.属性节点      不属于元素节点的子节点  4.文档节点(document) 二.处理元素节点    method    1.docu ...

  2. jq选择器(jq 与 js 互相转换),jq操作css样式 &sol; 文本内容, jq操作类名,jq操作全局属性&comma;jq获取盒子信息&comma;jq获取位置信息

    jq选择器(jq 与 js 互相转换) // 获取所有的页面元素jq对象 $('css3选择器语法'); var $box = $(".box:nth-child(1)"); 获取 ...

  3. JS中Float类型加减乘除 修复 JQ 操作 radio、checkbox 、select LINQ to SQL&colon;Where、Select&sol;Distinct LINQ to SQL Count&sol;Sum&sol;Min&sol;Max&sol;Avg Join

    JS中Float类型加减乘除 修复   MXS&Vincene  ─╄OvЁ  &0000027─╄OvЁ  MXS&Vincene MXS&Vincene  ─╄Ov ...

  4. jq与js获取值操作

    jq与js获取值操作 <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> &l ...

  5. mui webview操作

    HBuilder的webview操作 webviewAPI文档:http://www.html5plus.org/doc/zh_cn/webview.html 创建新的webview窗口: Webvi ...

  6. JS与JQ的对比与提高

    来吧, 案例1:先上个例子js写的省市二级联动 <!DOCTYPE html><html> <head> <meta charset="UTF-8& ...

  7. JS、JQ相关小技巧积攒

    JS.JQ相关小技巧积攒,以备不时之需. 1.js 获取时间差:时间戳相减.new Date().getTime()  获得毫秒数,除以(1000*60*60*24) 获得天数. 2.重定向操作:页面 ...

  8. 【转】从Vue&period;js源码看异步更新DOM策略及nextTick

    在使用vue.js的时候,有时候因为一些特定的业务场景,不得不去操作DOM,比如这样: <template> <div> <div ref="test&quot ...

  9. html select控件的jq操作

    html select控件的jq操作 1.判断select选项中 是否存在Value="paraValue"的Item $("#selectid option[@valu ...

随机推荐

  1. R语言拆分字符串

    R语言拆分字符串 aaa<-"aa;bb;cc"ccc<-strsplit(aaa,split=";") bbb<- unlist(strsp ...

  2. 『TCP&sol;IP详解——卷一:协议』读书笔记——12

    2013-08-24 14:22:46 4.5 ARP举例 首先要介绍一些tcpdump这个强大的Linux命令,它不但可以分析封包的流向,连封包的内容也可以监听,如果数据段没有加过密我们就可以做一些 ...

  3. jquery-toastmessage-plugin 简介信息

    jquery-toastmessage-plugin 简介信息 jquery-toastmessage-plugin是一个JQuery插件实现了类似于android的消息通知对话框.它提供4种消息提醒 ...

  4. 解决Failed to execute goal org&period;apache&period;maven&period;plugins

    1.Maven构建失败 Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin: 2.3 . 2 :compile  ...

  5. 【JS】Intermediate6&colon;jQuery

    1.jQuery is far and away the most popular DOM library Used to allow modification and control of the ...

  6. 注解方式传LIST&commat;RequestBody

    在SpringMVC中使用注解方式传List类型的参数时,要使用@RequestBody注解而不是@RequestParam注解 //创建文件夹 @RequestMapping(value=&quot ...

  7. Hibernate 性能优化之查询缓存

    查询缓存是建立在二级缓存基础之上的,所以与二级缓存特性相似,是共享的,适合修改不是很频繁的数据 查询缓存不是默认开启的,需要设置      1.在cfg文件中配置 <property name= ...

  8. 通过SocketLog快速分析php程序

    转载自http://www.thinkphp.cn/topic/10846.html 正在运行的API有bug,不能var_dump进行调试,因为会影响client的调用.这时候用SocketLog最 ...

  9. 【原】eclipse创建maven工程时,如何修改默认JDK版本?

    问题描述:eclipse建立maven项目时,JDK版本默认是1.5,想创建时默认版本设置为1.8,如何修改? 解决方案: 找到本机maven仓库存放位置,比如:${user.home}/.m2/路径 ...

  10. 【XSY2921】yja 拉格朗日乘法

    题目描述 在平面上找 \(n\) 个点,要求这 \(n\) 个点离原点的距离分别是 \(r_1,r_2,\ldots,r_n\),最大化这 \(n\) 个点构成的土包的面积.这些点的顺序任意. \(n ...