Jquery+JavaScript 随笔

一、 onkeydown、onkeypress、onkeyup  

注意: 监听事件监测不到右键的复制、粘贴、剪切等操作(获取实时改变值不建议使用这三种方法)

 onkeydown : 按下键盘的任意键立即触发,不过它是先触发再赋值,所以你当前按下的键值不会被算在你拿取的值中

 onkeypress:不会为所有键(例如ALT,CTRL,SHIFT,ESC)触发onkeypress事件,如果需要请使用onkeydown事件

 onkeyup  :   释放按键时触发,例如你要粘贴数据,在你按下Ctrl还没有释放时不会触发此事件要等你按完V,松开手才会触发

二、实时监听输入框变化的完美方案 oninput & onpropertychange 

  介绍: oninput & onpropertychange , 可以对修改的值进行实时监听,即值只要发生变化就会触发,不想 blur等,需要鼠标光标失焦才会触发!

  注意 :oniput 事件在 IE9 以下版本不支持,需要使用IE特有的 onpropertychange 来支持

  使用:

1.标签行内使用(这种方法一般是不会有事件监测不到的现象,而用第二种,可能你渲染出来的input恐怕不一定能监测到,如果可以还望大神留言)

1 <!--这里面的Demo,毋庸置疑就是Js方法,即事件触发后响应的方法-->
2 <input  oninput="Demo(event)"  onporpertychange="Demo(event)"  />

2.Jquery中使用 (同时绑定 oninput 和 onpropertychange 两个事件)

1 $('input').bind('input propertychange',function(event)
2 {
3        alert($(this).val())
4 })

 使用的标签: 

   1.input:checkbox(复选框)、input:radio(单选框) 的Checked属性发生变化

   2. textarea、select(这个在layui select中好像没有作用)

三、JS中get()方法和eq()方法的区别

get(0) 是返回dom对象的数组[object HTMLLIElement]

eq(0) 是返回一个jquery一个对象 [object object]

<!--HTML标签-->
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
//使用get()和eq()方法获取第一个li,并加样式

$('ul').eq(0).css('color','red');

$($('ul li').get(0)).css('color','red');

四、JS集合中是否存在某个对象

 1 //声明一个集合
 2 let items=[{Year:2020,Month:1},{Year:2019,Month:2}];
 3 //声明一个对象
 4 let item={Year:2019,Month:2};
 5 
 6 //现在我们要的结果是:我们要知道items集合中已经存在了 item对象
 7 
 8 function demo()
 9 {
10 //先将items集合和item对象转成json字符串,再用indexOf()方法搜索,如果存在,则不等于-1,反之一样等于-1则不存在
11  if(JSON.stringify(items).indexOf(JSON.stringify(item))!=-1)
12 {
13      //表示值已经存在
14 }
15 }
posted @ 2020-01-11 10:07  -PENG-  阅读(196)  评论(0编辑  收藏  举报