2017 jq 总结
$(el).parent() 获取父级元素
.parents('th') 获取祖元素th
.parentsUntil("th") 找到指定的祖元素,找不到则返回全部祖元素
.children() 获取子元素
.find(‘#main’) 查找该元素下的对应元素集合 ‘.main’ '[name="main"]'
.prev() 向前查找相邻兄弟元素
.next() 向后查找相邻兄弟元素
.nextAll() 向后查找所有兄弟元素
.nextUntil("#a3") 向后查找兄弟元素,直到某个元素停止,不包含指定的那个元素
.siblings() 获取所有兄弟元素
$(A).append("<p>Hello, World!</p>") 在A元素的内部的尾部添加元素p
$(A).appendTo(B) 把A元素添加到B元素内部的尾部
$(A).prepend(B) 在A元素内部的前面添加B
$(A).prependTo(B); 把A元素添加到B元素的内部的前面
$(A).after(B) 在A元素外部的后面添加B元素
$(A).insertAfter(B) 把A元素添加到B元素的外部的后面
$(A).before(B) 在A元素外部的前面添加B元素
$(A).insertBefore(B) 把A元素添加到B元素的外部的前面
remove()删除元素
detach('p')移除所有 p 元素
empty() 清空元素内的所有内容
//detach 只会移除元素
clone(是否复制事件) 复制元素 ,true 复制事件 , false 不复制事件
$(A).replaceWith(B) 用B元素替换A元素
$(A).replaceAll(B) 用A元素替换B元素
包裹元素
$(A).wrap(B) 用B元素包裹每一个A元素
$(A).wrapInner(B), 用B元素包裹每一个A元素里的内容
.attr('checked') 获取元素属性
.attr('checked', 'checked') 设置元素属性
.removeAttr('checked') 移除元素属性
.click(function(){ }) 点击事件
.mousedown(function(){ }) 鼠标按下事件
.mouseup(function(){ }) 鼠标松开事件
.dblclick(function(){ }) 鼠标双击事件
.mouseenter(function(){ }) 鼠标移入事件
.mouseleave(function(){ }) 鼠标移出事件
.mouseover(function(){ }) 鼠标移入事件
.mouseout(function(){ }) 鼠标移出事件
.keydown(function(){ }) 键盘按下事件
.keyup(function(){ }) 键盘松开事件
.keypress(function(){ }) 按键事件
.focus(function(){ }) 获得焦点事件
.blur(function(){ }) 失去焦点事件
.change(function(){ }) 文本值改变事件
.select(function(){ }) 选中事件
.submit(function(){ }) 提交事件
.scroll(function(){ }) 滚动条事件
.off("click mouseover") 解除事件
.one(function(){ }) 一次性事件
页面包含iframe时控制台调试js,需要使用
JQ:$(window.frames[1].document).find("#Excel")
JS:window.frames[1].document.getElementById('Excel')
获取父窗体的元素
$('#父窗体的元素', parent.document)
产生固定位数的随机数
function RndNum(n) {
var rnd = "";
for (var i = 0; i < n; i++)
rnd += Math.floor(Math.random() * 10);
return rnd;
}
input输入框设置为只能输入数字和小数点
<input onkeyup="$(this).val($(this).val().replace(/[^\d.]/g, ''));" type="text" /> 这个type必须为text,否则输入的内容有时会检测不到
<input onkeyup="this.value=this.value.replace(/[^\u4e00-\u9fa5a-zA-Z0-9\w]/g,'')"> 过滤特殊字符
<input type="text" maxlength="6" onblur="javascript: this.value=/^((\d{1,4})|(\d{1,4}\.\d{1,1}))$/.test(this.value) ? this.value :(/^(\d{1,4}\.)$/.test(this.value)? this.value+'0': '') " /> 这个比较全面
获取字符串字节长度
function(str) {
return str.replace(/[\u0391-\uFFE5]/g,"aa").length; //先把中文替换成两个字节的英文,在计算长度
};
复制对象
//安全的json序列对象,只能复制键值对,不能复制函数
JSON.parse(JSON.stringify(obj))
//es6新增的内置方法复制对象 还没有接触过
Object.assign({},obj1,obj2...)
自定义属性
var myObject = {
// 给 a 定义一个getter
get a() { return this._a_; },
// 给 a 定义一个setter
set a(val) { this._a_ = val * 2; }
};
获取浏览器窗口高度
document.documentElement.clientHeight
获取屏幕高度
window.screen.availHeight
注:上边两个高度并不会一直相等
checkbox兼容问题,使用attr不能选中(jQuery更新到1.6.1后出现)
$(this).is(":checked")//判断是否选中,返回bool类型
$("[name=items]:checkbox").prop("checked", true);//设置为选中
$("[name=items]:checkbox").prop("checked", false);//取消选中
界面全屏
$('.admin-side-full').on('click', function () {
var docElm = document.documentElement;
//W3C
if (docElm.requestFullscreen) {
docElm.requestFullscreen();
}
//FireFox
else if (docElm.mozRequestFullScreen) {
docElm.mozRequestFullScreen();
}
//Chrome等
else if (docElm.webkitRequestFullScreen) {
docElm.webkitRequestFullScreen();
}
//IE11
else if (elem.msRequestFullscreen) {
elem.msRequestFullscreen();
}
layer.msg('按Esc即可退出全屏');
});
向前补位
Array(3 -('' + 23).length + 1).join(0) + 23
("000" + 23).substr(("" + 23).length)
向后补位
(23 + Array(3).join('0')).slice(0, 3)
(23 + "000").substr(0,3)
js lambda操作
//lambda数组过滤 ArryList.filter(itmer => itmer == ''); //数组遍历 var arr = [,,,,,,,];
arr.map(x=>x*) //使用iterable内置的forEach方法 var a = ['A', 'B', 'C'];
a.forEach(function (element, index, array) {
// element: 指向当前元素的值
// index: 指向当前索引
// array: 指向Array对象本身
alert(element);
});
//Set与Array类似,但Set没有索引,因此回调函数的前两个参数都是元素本身: var s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
alert(element);
});
//Map的回调函数参数依次为value、key和map本身: var m = new Map([[, 'x'], [, 'y'], [, 'z']]);
m.forEach(function (value, key, map) {
alert(value);
});
//for of循环:与java中的foreach类似: for (var x of a) {
alert(x); // 'A', 'B', 'C'
}
//JS的默认对象表示方式为{}键值对方式,但是键都是字符串,所以引用了Map var m = new Map([['micheal',],['bob',],['baobao',]]); m.get('micheal'); //也可以这样: var m = new Map(); // 空Map m.set('Adam', 67); // 添加新的key-value m.set('Bob', 59); m.has('Adam'); // 是否存在key 'Adam': true m.get('Adam'); // 67 m.delete('Adam'); // 删除key 'Adam' m.get('Adam'); // undefined //Set 与java中的list相似吧但是值不重复,类型也多变; //add方法添加元素, var s = new Set([, , , , '']);
s.add();s.delete();
监听resopnse
$.ajaxSetup({complete:function(xhr){alert(xhr.responseText)}})
.
过滤特殊字符
2017 jq 总结的更多相关文章
- JQ版本对比
JQ不知不觉来到第三版了,那么它们有什么不同呢? 下面先给大家推一个CDN加速的网站,上面有各种JQ的版本:http://www.bootcdn.cn/jquery/ 先来对比一下它们的“体重”,23 ...
- 2017.12.21-JQuery
作业:密码加强验证 <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> & ...
- 2017 ACM-ICPC 亚洲区(乌鲁木齐赛区)网络赛
Banana Bananas are the favoured food of monkeys. In the forest, there is a Banana Company that provi ...
- CI Weekly #10 | 2017 DevOps 趋势预测
2016 年的最后几个工作日,我们对 flow.ci Android & iOS 项目做了一些优化与修复: iOS 镜像 cocoapods 版本更新: fir iOS上传插件时间问题修复: ...
- 猖獗的假新闻:2017年1月1日起iOS的APP必须使用HTTPS
一.假新闻如此猖獗 刚才一位老同事 打电话问:我们公司还是用的HTTP,马上就到2017年了,提交AppStore会被拒绝,怎么办? 公司里已经有很多人问过这个问题,回答一下: HTTP还是可以正常提 ...
- iOS的ATS配置 - 2017年前ATS规定的适配
苹果规定 从2017年1月1日起,新提交的 app 不允许使用NSAllowsArbitraryLoads来绕过ATS(全称:App Transport Security)的限制. 以前为了能兼容ht ...
- 深入研究Visual studio 2017 RC新特性
在[Xamarin+Prism开发详解三:Visual studio 2017 RC初体验]中分享了Visual studio 2017RC的大致情况,同时也发现大家对新的Visual Studio很 ...
- Xamarin+Prism开发详解三:Visual studio 2017 RC初体验
Visual studio 2017 RC出来一段时间了,最近有时间就想安装试试,随带分享一下安装使用体验. 1,卸载visual studio 2015 虽然可以同时安装visual studio ...
- jq选择器基础
Jquery $代表选择器 使用jq必须要导入jq文件 <script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js&qu ...
随机推荐
- 计算机网络【2】—— CSMA/CD协议
参考文献: https://blog.csdn.net/loveCC_orange/article/details/79177129 一.认识以太网 最早的以太网是将许多计算机都连接到一根总线上. 使 ...
- Java中ArrayList的fori和foreach效率比较
1. list的元素为Integer [代码实例1] public static void main(String[] args) { List<Integer> list = new A ...
- Java变量初始化之后的默认值问题
1) 局部变量初始化(局部变量:函数.语句中的变量,只在所属区域内有效)局部变量声明后,Java虚拟机不会自动给它初始化为默认值.因此对于局部变量,必须经过显示的初始化,才能使用它.如果使用一个没有被 ...
- 九省LNOI2018退役记
立个flag不会退役. Day 0: 水一发. 大连大学的键盘敲起来就跟敲纸似的. 膜拜要进队的gqh,yxd,sjq. (都进啦2333) (高斯消元,高原反应,分麾下治……) 给我这只弱鸡烧根香. ...
- 网络对抗课题4.3.1 SQL注入原理与实践
网络对抗课题4.3.1 SQL注入原理与实践 原理 SQL注入漏洞是指在Web应用对后台数据库查询语句处理存在的安全漏洞.也就是,在输入字符串中嵌入SQL指令,在设计程序中忽略对可能构成攻击的特殊字符 ...
- 20165218 《网络对抗技术》Exp1 逆向及Bof基础
Exp1 逆向及Bof基础 基础知识 1. NOP, JNE, JE, JMP, CMP汇编指令的机器码 指令 机器码 NOP NOP指令即"空指令",在x86的CPU中机器码为0 ...
- android app 的插件化、组件化、模块化开发
Android 插件化 ——指将一个程序划分为不同的部分,比如一般 App的皮肤样式就可以看成一个插件 Android 组件化 ——这个概念实际跟上面相差不那么明显,组件和插件较大的区别就是:组件是指 ...
- @Html.DropDownListFor默认选中项
http://q.cnblogs.com/q/73902/ 项目使用mvc4,给dropDownList指定默认值未选中 页面代码是: 1.未有默认选中值 Html.DropDownListFor(m ...
- rovio视觉里程计的笔记
rovio是一个紧耦合,基于图像块的滤波实现的VIO. 他的优点是:计算量小(EKF,稀疏的图像块),但是对应不同的设备需要调参数,参数对精度很重要.没有闭环,没有mapping thread.经常存 ...
- set.seed(7)什么意思
以前虽然在每个程序都看见过,但是没注意过这个问题,也不理解是什么意思,去搜了一些帖子才明白. 其实,很好理解,就是如果你不加set.seed(7),当然代码也可以执行这个命令,但是每次执行的结果都会不 ...