JQ

224 阅读3分钟

如果script标签写入了head中

 需要用到window.onload方法
 window.onload=function(){
 var oDiv=document.getElementByTagName('div')[0]
 console.log(oDiv)
 }

文档就绪函数

 页面结构加载完之后执行
  $(function(){
   console.log( )
    })//简写

DOM对象转换成JQ对象

  $(oDiv)

JQ对象转换成DOM对象

  $oDiv[0]
  $oDiv.get(0)

兄弟元素选择器:

           $('#list~li').css('background','red')   后面所有
           $('#list+li').css('background','red')   下一个
           $('li:eq(2)').css(     ) 匹配第几个元素 正数索引从零开始 负数从-1开始
           $('li:even').css()   选择偶数位元素
           $('li:odd').css()  选中奇数位元素
           $('li:gt(2)').css('color','red')   大于索引的元素
           $('li:lt(2)').css()   小于索引的元素
           $(':header').css()  选择所有标题标签
           $('li:not(#list1)').css()

元素可以被认为是隐藏的几种情况:

 他们的CSS display 值是none
 type='hidden'的表单元素
 宽高都设置为0
 祖先元素是隐藏的

$(':hidden')选择所有隐藏的元素

 ul{
   display:none   //释放空间
  }
 ul{
   visibility:hidden //不释放空间
   opacity:0//不释放空间
 }

JQ属性

  $('li[name |="list"]').css() 选定指定属性值等于给定字符串或以该字符串为前缀的元素
  $('li[name *="list"]').css()   选定指定属性值包含字符串的元素 
  $('li[name ~="list"]').css()   属性值必须就是指定值
  $('li[name $="list"]').css()  以指定值结尾
  $('li[name ^="list"]').css()   以指定值开头
  $('li[name !="list"]').css()
  $('li[name]').css()   有name属性的

子元素筛选

 $('li:nth-child(1)').css() 第一个子元素从1开始
 $('li:nth-last-child(1)').css() 最后一个子元素从1开始

表单

  :button 一个和$(":button")等价的选择器,使用有效的CSS是$("button, input[type='button']")。
 :checkbox  描述: 选择所有类型为复选框的元素。
 :checked  描述: 匹配所有勾选的元素。
 :disabled  描述: 选择所有被禁用的元素。
 :enabled 描述: 选择所有可用的(注:未被禁用的元素)元素。
  :focus  描述: 选择当前获取焦点的元素。
  :file    描述: 选择所有类型为文件(file)的元素。
 :image  描述: 选择所有图像类型的元素。
 :input  描述: 选择所有 input, textarea, select 和 button 元素.
 :password  描述: 选择所有类型为密码的元素。
 :radio  描述: 选择所有类型为单选框的元素。
 :reset 描述: 选择所有类型为重置的元素。
 :selected  描述: 获取 select 元素中所有被选中的元素。
 :submit  描述: 选择所有类型为提交的元素。
 :text  描述: 选择所有类型为text的input元素。

属性 / CSS

  $('#wrapper').attr('class','content')  设置属性 也可以获取属性
  $(':checkbox').prop('chcked',true)

var tag=$(':checkbox').prop('checked')//获取属性的时候只能获取到第一个元素的属性})

要想获取到每一个元素的属性each()遍历

  $(':checkbox').each(function(index,elelment){
    element.checked=!element.checked
  //JQ对象 var tag = $(element).prop('checked')
  //      $(element).prop('checked',!tag)
 )
})
  .removeAttr() 描述: 为匹配的元素集合中的每个元素中移除一个属性(attribute)

输入框例子

 $('input').on('focus',function()[
 if(this.value==this.defaultValue){
    $(this).val('')
}
}).on('blur',function(){//blur 失去焦点
    if(!this.value){
        $(this).val(value)
    }
})

样式添加

 .addClass()  描述: 为每个匹配的元素添加指定的样式类名
 .toggleClass()      切换样式,添加或删除class
 $)('div').css({
    width:'400px'
    height:'400px'
    opacity:'0.5'
    background:'red'
})

位置

 .offset()  描述:       在匹配的元素集合中,获取的第一个元素的当前坐标,坐标相对于文档。
  var p = $("p:last");
 var offset = p.offset();
 p.html( "left: " + offset.left + ", top: " + offset.top )

DOM 插入, 内部插入

 .append() 描述: 在每个匹配元素里面的末尾处插入参数内容。  
 ppendTo() 描述:   将匹配的元素插入到目标元素的最后面(译者注:内部插入)。   $('<p>Test</p>').appendTo('.inner');
 .html() 描述: 获取集合中第一个匹配元素的HTML内容
 .prepend() 描述: 将参数内容插入到每个匹配元素的前面(元素内部)。
 .prependTo() 描述: 将所有元素插入到目标前面(元素内)。
 .text()  $('#content').html('<a href="#">百度</a>')  设置的是HTML片段
         $('#container').text('<a href="#">百度</a>')  设置的是文本

DOM 插入, 外部插入

 .after() 描述: 在匹配元素集合中的每个元素后面插入参数所指定的内容,作为其兄弟节点。
 .before() 描述: 根据参数设定,在匹配元素的前面插入内容(译者注:外部插入)

DOM 移除

 .empty()  描述: 从DOM中移除集合中匹配元素的所有子节点。
 .remove() 描述:  将匹配元素集合从DOM中删除。(注:同时移除元素上的事件及 jQuery 数据。)
 var $s=$('span')
 console.log($s.eq(0))

树遍历

 .children() 描述: 获得匹配元素集合中每个元素的子元素,选择器选择性筛选
 .parent()  描述: 取得匹配元素集合中,每个元素的父元素,可以提供一个可选的选择器。
 .parents()  描述: 获得集合中每个匹配元素的祖先元素,可以提供一个可选的选择器作为参数。

JQ给动态生成的元素绑定事件:

 $('ul').on('click','li',function(event){
 console.log(event.target.innerHTML//e.target返回的是DOM元素)
 })

效果

 .hide( [duration ] [, complete ] )   描述: 隐藏匹配的元素。   $('.target').hide()
 .show( [duration ] [, complete ] )  $('#book').show()
.toggle( [duration ] [, easing ] [, complete ] ) 描述: 显示或隐藏匹配元素。
.animate( properties [, duration ] [, easing ] [, complete ] ) 描述: 根据一组 CSS 属性,执行自定义动画。
$('div').animate({
    width:'400px',
    opacity:0.5
},2000).animate({
    height:'400px',
    opacity:0.25
},1000)
.stop( [clearQueue ] [, jumpToEnd ] ) 描述: 停止匹配元素当前正在运行的动画。 第一个布尔值,指示是否取消以列队动画。默认 false
第二个布尔值指示是否当前动画立即完成。默认false
.fadeIn( [duration ] [, complete ] )  描述: 通过淡入的方式显示匹配元素。
.fadeOut( [duration ] [, complete ] )  描述: 通过淡出的方式隐藏匹配元素。
.fadeTo( duration, opacity [, complete ] )  描述: 调整匹配元素的透明度。
.fadeToggle( [duration ] [, easing ] [, complete ] ) 描述: 通过匹配的元素的不透明度动画,来显示或隐藏它们。