六、jQuery基础

jQuery:集合Dom/BOM/Js的类库

参考文献:http://jquery.cuishifeng.cn/index.html

参考博客:https://www.cnblogs.com/wupeiqi/articles/5369773.html
导入:相当于放在编辑的文档文件中:官网下载的是js文件,有两个文件,本地测试可以用正常版本,正常上线的时候用压缩版的,例如:jquery-1.12.4.js,推荐使用1系列的最新版本,兼容性比较好,2和3版本会忽略低版本的浏览器。

我们在使用jquery的时候,也是要先把jquery的css文件放入工程里面,但是不用link导入,而是在编写JavaScript脚本的时候再导入,如下:

导入方法:
  <script src='jquery-1.12.4.js'></script>
  <script>
    jQuery.(也可以写成$('#i1'),一般都是用$这个方法)
  </script>

jquery和Dom之间的转换:
  $('#id')[0] 就可以转换成Dom对象document.getElementById('i1')
  d=document.getElementById('i1'), $(d)就可以将Dom对象转换成jquery对象;

tips:

在使用别人的样式时,如果你想要编辑或者添加一个小图标(https://fontawesome.com/icons?from=io),只需要在这个网站下载他们的样式打包文件下来,解压到自己的工程项目里面,在<title>标签下面用<link>标签引入他们的css文件,然后再找到你想要的小图标的标签源码复制到你的html文件想要黏贴的位置即可,这种方法可以减少代码编写量,但是修改就比较麻烦,如果要将自己想要渲染的样式覆盖掉他们的样式,就必须在自己定义的style中添加的样式后面加上!important,示例:

<link rel="stylesheet" href="/static/bootstrap.ss">
<style>
.c1{
!important;
}
</style>

这样,自己渲染的c1类的背景颜色就编程了红色,覆盖了引入的css样式里面定义好的背景颜色了。

一、查找元素:选择器,直接找到某个或者某类标签
1.id
  $('#id')
2.class
  <div class='c1'></div>
  $('.c1')
3.标签
  <a>...</a>
  $('a')
4.选择多个标签(组合选择)
  $('a,c1,#id')
5.层级选择,和方法4不同的是,查找的元素之间用空格隔开;
  $('a c1 #id') 子子孙孙
  $('a>child'),$('a+child'),$('a~child') 只找儿子
6.基本和属性的选择参考相关网站

实例:
  jquery循环:$('...').each(function(){}),例如反选实例,全选或者多选不需要后面的each,jquery默认是会自动循环的 注意function里面要有this,代表当前循环的每一个元素,这里的this是Dom对象
$(this).prop('key','value') jquery获取和设置属性方法,prop方法是专门针对checked和selected的
三元运算:var v=条件 ?真值:假值

 

筛选:在选择器选择到的所有元素中再次进行选择,例如:
  $(this).next() 紧挨着的下一个标签
  $(this).prev() 紧挨着的上一个标签
  $(this).parent() 获取父标签
  $(this).children() 获取所有的孩子标签
  $(this).siblings() 获取除了自身的所有兄弟标签
  $(this).find('.c1/#id') 通过find找到.c1/$id的标签

添加样式:$('').addClass()
删除样式 $('').removeClass()
  js还支持链式编程,就是说可以将多个操作都通过jquery的.写成一条语句

其他jquery的功能请参考网站:http://jquery.cuishifeng.cn/


文本操作:(这些知识点可以练习模态框)
  $(...).text() 获取文本内容
  $(...).text('xxx') 设置文本内容,如果内含标签,不会解析,直接作为字符串
  $(...).html() 获取内含标签的内容
  $(...).html('xxx') 设置值
  $(...).val() 相当于Dom中的value,获取值
  $(...).val(‘’) 相当于Dom中的value,设置值

样式操作:
  $(.c1).removeClass('hide')
  $(.c1).addClass('hide')
开关操作:$(.c1).toggleClass('hide'),实现显示或者消失
属性操作
  $('').attr() 专门用来做自定义属性,可以获取和修改属性
  $('').removeAttr() 专门用来做自定义属性,可以删除属性
  $('').prop() 专门用于chekbox,radio进行的操作
  $('').index() 获取索引值

TAB切换菜单:
文档处理:

  $('').append() 子标签最后添加一个标签
  $('').prepend() 字标签最前面添加一个标签
  $('').after() 标签下面添加一个平级标签
  $('').before() 标签上面添加一个平级标签
  $('').eq(index).remove() 删除一个标签
  $('').eq(index).empty() 清空一个标签的内容
  $('').eq(index).clone() 复制一个标签

css某一条样式的修改:
  $('').css('样式名称','样式值')
点赞功能实现:
  -$('').append()
  -setInterval定时器
  -透明度
  -opsition
  -大小,位置

位置操作:(可以实现移动窗口位置的功能)
  -$('').remove()
  -$(window).scrollTop() 获取右侧滑轮位置,
  -$(window).scrollTop(100) 设置右侧滑轮到100,
  -$('').offset() 获取指定标签在html中的坐标
  -$('').offset().left() 获取指定标签在html中离左边距离
  -$('').offset().right() 获取指定标签在html中离右边距离
其他操作参考上面网站。

事件:Dom:三种绑定
jquery:
  $('.c1').click()
  $('.c1').bind('click'.function(){})
  $('.c1').unbind('click'.function(){})
  比较特殊的方式:$('.c1').delegate('a','click'.function(){}) 根据标签绑定,这种叫委托,当代码执行的时候其实没有绑定事件,当进行点击了时候才绑定执行事件
  $('.c1').undelegate('a','click'.function(){})
上面几种绑定都是下面的on绑定方法的扩展
  $('.c1').on('click',function(){})
  $('.c1').off('click',function(){})

阻止事件发生:

  这些绑定的事件都是后来绑定的,执行先后顺序为,后来绑定的优先于标签默认自带的先执行,如a标签,当添加的事件加上return false时,后面的事件不会执行,如果是ruturn true 就会执行后面的;注意,通过Dom绑定事件,标签中的事件绑定要加上return(onclick='return Foo()'),用jquery绑定的在函数里面添加return函数就行;(表单提交验证的时候可以用这个功能)

  默认事件先执行标签:Checkbox标签;

  自定义事件先执行:a,submit...标签;

   登陆注册框实现代码实例:

 

  当页面框架加载完成之后自动执行:代码是由上至下执行的,一般图片太大的时候会有延迟,图片框架有了,但是内容还没有显示,所以将script代码放在这个函数体内可以优先执行,不用等图片全部加载完成
$(function(){})

扩展:里面是字典形式的
  第一种:

  $.extend({
    '扩展名1':function(){...},
    '扩展名2':function()(...),
    '扩展名3':function()(...),
    })
  var v=$.扩展名();
  alert(v);


第二种:

  $.fn.extend({
    '扩展名1':function(){...},
    '扩展名2':function()(...),
    '扩展名3':function()(...),
      })
    var v=$(‘选择器’).扩展名();
    alert(v);
  以后可以引入网上其他人写的扩展方法,写在一个文件里,但是要像引入jquery一样引入这个文件,当映入的两个扩展名字相同,而且又都有全局变量的时候,这个时候就可以在扩展文件里面用自执行函数,也可以带参数例如:带上参数(jQuery),这样扩展文件里面的就都是局部变量了

 

正则:
  js中创建正则表达式对象:/匹配符/
  test 判断字符串是否符合规定的正则
  rep=/\d+/;
  rep.test('asdfgsgsg34g')
  返回true
  rep=/^\d+$/ 这种匹配就是开头结束都是数字才返回ture
  exec 获取/提取匹配的数据
  rep=/\d+/;
  rep.exec('asd45sgsg34g')
  返回的只有[‘45’],是一个列表,而且只有一个,
验证过程:
  1、前端:验证

  2、后端:python验证实现

  3、业务处理

posted @ 2018-10-04 20:19  一叶风语  阅读(153)  评论(0编辑  收藏  举报