jq概念笔记

只能输入纯数字的输入框:<input type="text" name="" οninput="value=value.replace(/[^\d]/g,'')"> //放心使用很强大

vue  只能输入纯数字的输入框

@keyup="inputChange"  
 inputChange() { //输入框值改变
        this.pageIndex = this.pageIndex.replace(/[^\d]/g, '')
    }
 

jQuery中$()可以有两个参数 

var $box = $('div.work_content');
var $txt = $('div.model-select-text',$box);

JQuery 获得绝对, 相对位置的坐标方法
    绝对:
    var X = $('#obj').offset().top;
    var Y = $('#obj').offset().left;

   获取相对(父元素)位置:
   var X = $('#obj').position().top;
   var Y = $('#obj').position().left; 

$("#div_id").height();
// 获得的是该div本身的高度, (不包含padding,margin,border)
$("#div_id").outerHeight();
// 包含该div本身的高度, padding上下的高度, 以及border上下的高度(不包含margin的高度)
$("#div_id").outerHeight(true);
// 包含该div本身的高度, 以及padding,border,margin上下的总高度

jQuery页面加载后执行的事件(3种方式)
1 $(function () {});

2 $(document).ready(function () {});

3 window.onload = function () {};

jq获取 input type为password的value值

var password =  $('input[name="password"]').val();

$() 获取到的都是一个集合

$('li') => ['li','li','li']

prop:能够获取与处理html元素中的固有属性,
attr: 能够获取html元素中的自定义属性

prop:对于HTML元素本身就带有的固有属性:“id、class、style、title、ref、target..." 

<input type="checkbox" name="" id="" value="" />

attr: 对于HTML元素我们自己自定义属性(data-*)、使用attr方法: <p data-id = "1"></p>

attr('title') 为获取(title可以换成class、id等)

$('div').attr('title','456');//为赋值

$("xxx").prop作用等同于 attr,有的地方使用比attr好

$("[name=checkItem]:checkbox").prop("checked",true);

使用的是 prop() 方法来设置复选框的属性值,而不使用 attr() 方法,这是因为如果使用 attr() 方法会存在浏览器的兼容问题。

对于自定义的属性,attr可以获取,prop则为undefined,

<a action='Action' href="http://www.baidu.com">点我跳转</a>
console.log($('a').attr('action'))//Action
console.log($('a').prop('action'))//undefined

对于具有true与false的属性,例如checked,selected或者disabled时则使用prop()

/ /读取标签定义属性 data-[key] = [value]

<span id="span" data-name="js">js</span>

//读取标签定义属性的值

$("#id").data("key");

$("#span").data("name"); //js

// 设置标签定义属性 的值

$("#id").data("key", "value");

$("#span").data("name",“jq”);//jq

scrollTop()获取滚动距离

$('div').next().css('background','red').end().css('color','blue');// 链式操作 end()后面css的操作对应的是div,,前面的css是针对div的下一个兄弟节点

$('div').next().css('background','red').addBack().css('color','blue');// 链式操作 addBack()后面css的操作对应的是div,,并且div的下一个兄弟节点也加上和div相同的css操作且也有前面的css

//json形式设置
 $('#div1').css({width:'200px',height:'100px',background:'red'}) 中间只能用逗号隔开
  $('#div1').on({click:function(){alert(1)},mouseover:function(){alert(2)}});

Jquery的parent和parents(找到某一特定的祖先元素)

上找父母(parents)下找孩子(children)中间找兄弟(siblings)、next

删除祖父级元素:$(this).parents().find('#table').remove();

jq克隆元素加事件:$('#table').clone(true)

$('#.父级元素').find('.className、标签');

//index 索引:当前元素在所有兄弟节点中的位置从0开始

$('div').addClass('box3 box4');添加class

width = width

innerwidth() = width+padding 不加margin

outerwidth() = width+padding+border 不加margin

//$('img').trigger('scrollDown');//自定义事件通过主动触发的trigger来调用的,自定义事件是在系统事件的基础上进行二次封装

如果

outerWidth(true)这样就加margin

$('input[value*="3"]').css('background','red');

$('div[style*="red"]').css('background','');

 input[value^="11"]  // ^= 11开头
 input[value$="11"]  // $= 11结尾
 input[value*="11"]  // *= 只要有包含11的

<div style="width:100px" a="123">123</div>
  $('div[a="123"]').click(function(){})
  $('div[style="width:100px"]').click(function(){})   //属性选择器

好的鼠标事件写法:

$('div').on('click',function(){
		alert('123');
		$('div').off('加取消的事件');
	});

鼠标移入移出事件:

$(function(){
  $("#div").hover(function(){
    $(".div2").slideDown();
  },function(){
  $(".div2").slideUp();
  })
});
 $(function(){  
                $('#id').on({  
                    mouseover : function(){  
                        $(this).wrap("<h1>") ;  
                    } ,  
                    mouseout : function(){  
                        $(this).unwrap() ;  
                    }   
                }) ;  
            }) ;    

$('#div1').find('div').eq($(this).index()).show();

eq($(this).index())//对应当前点击的下标表示

//ev:event 对象

jq设置未知元素垂直居中页面

<script type="text/javascript">
    //居中
      $login.css('left',($(window).width()-$login.outerWidth())/2);
      $login.css('top',($(window).height() - $login.outerHeight())/2);

    //内容跟随导航条滚动
    var timer;
    $(window).scroll(function(){
     clearTimeout(timer);
        timer = setTimeout(function () { //解决滚动抖动问题
             $login.css('top',($(window).height() -         
             $login.outerHeight())/2+$(document).scrollTop());
        },50)
     
    })
  </script>

  //js 
  /*鼠标坐标方法:clientX(相对于可视区) Y;
  keycode:键盘键值
  */
  //jq 
  /*鼠标坐标方法:ev.pageX(相对于文档的) Y;
 ev.which:键盘键值
 ev.preventDefault()阻止默认事件
 ev.stopPropagation()阻止冒泡操作 只能阻止祖先节点,不能阻止自身。

ev.stopImmediatePropagation();既可以阻止自身也可以阻止祖先冒泡。
 return false;阻止默认事件+阻止冒泡操作 一句搞定
  */
  //one() 只执行一次

<script type="text/javascript">
  /*$('input').on('focus',function(){
    alert(1);
  });*/
  $('input').focus();//获取焦点
  $('input').blur();//失去焦点
  $('div').on('focusin',function(){
    alert(1);
  });//支持冒泡、获取焦点

 // 监听焦点事件,能返回
  $('.one').focus(function(){
  console.log("获取到焦点!")
  })
// 失去焦点事件 blur 能返回
  $('.one').blur(function(){
   console.log("失去焦点了?")
})
  $('input').focusout();//支持冒泡、失去焦点
  </script>

detach():跟remove方法一样,只不过会保留删除这个元素的操作行为(如点击).

<div>div</div>
 <span>span</span>
  <script type="text/javascript">
    $('div').replaceWith($('span')); //div被span替换
    $('div').replaceAll($('span'));//div替换span
  </script>

/ get():把jq转成原生js
// outerWidth():获取不到隐藏元素的值

clone():可以接受一个参数,作用可以复制之前的操作行为

//$('#div1').clone(true).appendTo($('span'));//true加上克隆行为

//$('span').wrap('<div>');div包裹span
// wrap():这里表示给每个span元素外面包裹一个div标签(单独包裹)(前面的是被包裹元素)
//$('span').wrapAll('<div>');用一个div包裹住所有的span(前面的是被包裹元素)
//$('span').wrapInner('<div>'):内部包裹,每个span里面包裹一个div

//$('span').unwrap():删除包裹:删除父级(不包括body)

//$('span').unwrap('div');

$.proxy() 改变this指向
<script type="text/javascript">
  function show(){
    alert(this);//window
  }
  show.call(document)//document
  
  function show(a,b){
    alert(a);
    alert(b);
    alert(this);
  }
  $.proxy(show,document)();//调用
  $.proxy(show,document)(3,4);//调用 赋值
  </script>

全局变量接收局部变量的值

    // var colors;//定义一个全局变量
    // $('span').click(function(){
    //   var yanse = $(this).text();
    //   console.log(color)
    //   colors = yanse;//被赋值的写在左边
    // })

    //快捷的
     var colors = '';
     $('span').click(function(){
       colors = $(this).text();//给全局的变量赋值
       console.log(color);
     })
    
    $('div').css('background',colors);//一个变量直接写

    // html+='<a href="#"><span>'+bianliang+'</span></a>';//拼接:外面,里面符号一致加号颜色变红。

$('li').slice(1,4).css('background','red');  2,3,4个变红了 筛选

//serialize:输出序列化表单值
// console.log($('form').serialize()) //string:a=1&b=2&c=3 串联一起(字符串形式)
// console.log($('form').serializeArray()) (数组形式) 
// [
  {name:'a',value:'1'},
  {name:'b',value:'2'},
  {name:'c',value:'3'},

  ]

    <form>
<input type="text" name="a" value="1"/>
<input type="text" name="b" value="2"/>
<input type="text" name="c" value="3"/>

</form>

运动

// animate():第一个参数:{width:200} 运动的值和属性
// 第二个-时间:默认400ms{},1000
//第三个-运动形式-两种:1.默认:swing(慢快慢) 2.linear(匀速)
//第四个-回调函数
//$(this).animate({width:300,height:300},2000,'linear',function(){alert(123)});

//stop():默认阻止当前运动,不阻止所有,stop(true) 阻止后续所有运动,stop(true,true) 当前运动立马完成 = finish()立即完成运动。

$('div').next().css('background','red').end().css('color','blue');end()返回上一级 就是操作$('div')了,可以调用多次

$('div').next().css('background','red').addBack().css('color','blue');不仅操作上一级,还操作了当前的

$('#div1').offset().top  //left offset()的距离值都是相对于整个页面的

$('#div2').position().left//父级元素css加定位 他不认margin值

//delay(1000):延迟(时间)

//事件委托
/*$('ul').delegate('li','click',function(){
this.style.background = 'red';
});*/
//阻止事件委托 $('ul').undelegate();

//$('#div1').trigger('click');(打开页面)主动触发点击效果

scrollTop() ==$(document).height()-$(window).height();

<script type="text/javascript">
	var jq = $.noConflict();//解决jq版本冲突,jq可换任意名字
	//在源码中 $=jQuery
	jq(function(){
		alert(123);
	})
</script>

jq:回调

<script type="text/javascript">
 var cb = $.Callbacks();
 var cb = $.Callbacks('once');//指出发一次fire操作
 var cb = $.Callbacks('memory');//有记忆功能,后添加的函数也能执行
 var cb = $.Callbacks('unique');//去重复
 var cb = $.Callbacks('stopOnFalse');//函数中有return false,跳出整个集合操作
 function a(){
 	alert(1);
 }
 (function(){
 	function b(){
 		alert(2)
 	}
 	cb.add(a);
 	cb.add(b);
 })();
 cb.fire();//触发
</script>
<script type="text/javascript">
var dfd = $.Deferred();//延迟对象
	setTimeout(function(){
		alert(1);
		dfd.resolve();// reject
	},1000);
	dfd.done(function(){//done 成功 fail
		alert(2)
	})
</script>

var str = '{"name":"hello"}';

alert($.parseJSON(str).name);//JSON

var aDiv = document.getElementsByTagName('div');//类数组
$.makeArray(aDiv).push();//转为正真的数组

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

林中明月间。

分享共赢。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值