JavaScript
xcmercy
这个作者很懒,什么都没留下…
展开
-
JS中整数的取整、取余、向上取整问题
1.取余var i = 5 % 2; //12.取整注意JS中的 / 操作符如果两侧的数是整数,他也会当作浮点数进行运算,不会整除,它会保留小数var i = 5 / 2; //2.5正确的取整方式需要借助parseInt()方法var i= parseInt(5 / 2 ); //23.向上取整(只要除完结果有小数,整数部分会加1,小数部分省略),一般用在分页时计算一共多原创 2018-01-13 08:51:40 · 7596 阅读 · 0 评论 -
$.attr()与$.data()的区别
本文参考自wdskuki的文章,文章地址Jquery中.attr()和.data()的区别本质区别$.attr()和$.data()本质上属于DOM属性和Jquery对象属性的区别。示例代码<!DOCTYPE html><html> <head> <meta charset="utf-8"> ...转载 2018-03-25 14:48:27 · 3705 阅读 · 2 评论 -
遍历JS对象的属性
示例代码var o = {id:2333,name:'Bob',age:22,birth:'1970-01-01'};$.each(o,function(propertyName,propertyVal){ console.log(propertyName,propertyVal);});运行结果原理$.each(object/array,callback)...原创 2018-04-03 19:34:20 · 192 阅读 · 0 评论 -
获取字符串中所有符合条件的子串
需求获取字符串中所有与条件匹配的子串。解决方案给出与条件相符的正则表达式,该正则表达式必须是全局的。调用字符串的match(regex)方法,该方法会匹配到字符串中所有符合条件的子串,并将他们放在一个字符串数组中返回。示例// 创建全局的正则表达式,匹配所有连在一起的数字字符串var regex = /\d+/g;// 瞎给的字符串var s1 = '2333ab...原创 2018-03-28 22:11:44 · 6289 阅读 · 0 评论 -
JS全局正则表达式匹配同一字符串结果不一致
示例var regex = /^\d*$/g;var s = '2333';console.log(regex.test(s));console.log(regex.lastIndex);console.log(regex.test(s));console.log(regex.lastIndex);console.log(regex.test(s));console.log(...原创 2018-03-28 22:34:38 · 2956 阅读 · 0 评论 -
WEB页面显示XML文档内容
存在问题XML文档中内容都是自定义标签,浏览器会把自定义标签解析,最终显示的只有自定义标签中的内容。而我们需要显示整个XML文档中的内容,包括自定义标签。解决方案浏览器解析自定义标签的原因是:XML文档中自定义标签结构与HTML标签结构相同,都是 < 开头,>结尾的。为了让浏览器不解析自定义标签,同时还需要显示自定义标签的< 和 >,我们需要把 < 和 &...原创 2018-05-30 12:52:55 · 5898 阅读 · 0 评论 -
JSON与JS对象
比较<script> // JS对象 var obj1={}; // JS的对象 var obj2={width:100,height:200}; // JS的对象 var obj3={'width':100,'height':200}; // JSON格式的JS对象 var obj4={"width":100,"he...原创 2018-06-07 11:59:53 · 186 阅读 · 0 评论 -
mousedown、mouseup、click事件之间的关系及执行顺序
三个事件的触发时机mousedown当鼠标指针移动到元素上方,并按下鼠标按键(左、右键均可)时,会发生 mousedown 事件。 与 click 事件不同,mousedown 事件仅需要按键被按下,而不需要松开即可发生。mouseup当在元素上松开鼠标按键(左、右键均可)时,会发生 mouseup 事件。 与 click 事件不同,mouseup 事件仅需要松开按钮。当鼠...原创 2018-06-22 16:30:18 · 91016 阅读 · 3 评论 -
解决png格式图片在IE6中无法透明
解决方案为了解决png格式图片在IE6中无法透明(其实是图片中的透明背景在IE6中会显示成灰色)问题,这里提供一种方案,该方案需要借助一个外部js文件来解决,该js文件下载地址:解决png格式图片在IE6无法透明的js文件 1. 在出现png图片无法透明的页面引入上述js文件 2. 在body标签的最后加入下面的代码,fix方法的参数是需要解决透明问题的png图片的选择器,可以是多个选择器...原创 2018-06-17 12:14:19 · 261 阅读 · 0 评论 -
Chrome开发者工具调试JS代码片段
Snippets(代码片段)作用:Chrome开发者工具的Snippets提供了在Chrome里保存及运行或者调试一段js代码的功能 入口:Chrome开发者工具-Sources面板-Snippets面板打断点调试js代码// 遍历对象的属性var user = {name:'a',age:22};$.each(user,function(propertyName,propert...原创 2018-07-02 13:02:48 · 3020 阅读 · 0 评论 -
remove()和empty()方法删除DOM元素
示例<div class="box1"> <h3>I'm h3 element.</h1> I'm text. <p>A</p> <p>B</p> <p class="del-flag">C&原创 2018-07-04 09:02:34 · 1365 阅读 · 0 评论 -
解决 easy ui 异步树展开节点仅加载一次子节点数据问题
异步树展开子节点Easy ui的异步树,在第一次展开节点时,从后端加载数据,然后渲染成子节点。之后,关闭该节点再次打开该节点时,它不会从后端再次加载子节点。存在的问题及解决由于异步树仅在第一次展开节点时加载数据,当我们需要在每次展开节点时都从后端加载数据时,变得有些困难。解决方案有以下两个: 1. 调用tree组件的reload方法,此方案没真正实现过,不讨论。 2. 把每一次展开...原创 2018-07-05 19:48:41 · 1502 阅读 · 0 评论 -
jquery的attr()与prop()方法的区别
使用情景对于HTML元素本身就带有的固有属性,处理时使用prop方法。对于HTML元素自定义属性,处理时使用attr方法。固有属性指的是HTML标签原生支持的属性,如a标签原生支持的属性有:download、href、hreflang、media、rel、target、type,这些属性是W3C组织确定的,可通过W3School查询 自定义属性指的是自己未HTML标签定义的属性,如...原创 2018-08-14 12:58:11 · 393 阅读 · 0 评论 -
AJAX传递数组参数方式及后端Springmvc接收方式
传递的数组中的元素不是对象方式一:遍历数组,把数组中的元素拼接为请求字符串 前端发送请求:var checkedItem = [1533799438815, 1533806803574, 1533806973625, 1533807374669];var queryStr = '_method=delete';$.each(checkedItem,function(idx,item)...原创 2018-08-11 13:29:20 · 6530 阅读 · 1 评论 -
AJAX请求 "Provisional headers are shown"
AJAX请求出现Provisional headers are shown原因及解决原因情景:在一个弹窗中发送AJAX请求做一些操作,然后关闭窗口,有一定几率出现Provisional headers are shown代码:var index = parent.layer.getFrameIndex(window.name);// 发送请求$.ajax({ type...原创 2018-09-12 19:07:48 · 9522 阅读 · 0 评论 -
Promise
Promise Promise是一个承诺,它根据任务是否执行成功,执行相应的后续操作,常用于异步操作中。 Promise对象用于表示一个异步操作的最终状态(完成或失败),以及其返回的值。Promise对象状态pending: 初始状态,既不是成功,也不是失败状态。fulfilled: 意味着操作成功完成。rejected: 意味着操作失败。Promise构造器...原创 2018-09-12 19:35:19 · 557 阅读 · 0 评论 -
JavaScript原型及原型链
javascript原型及原型链隐式原型与显式原型显式原型:每一个函数对象都有一个prototype属性,即显示原型隐式原型:每一个实例对象都有一个__proto__属性,即隐式原型对象的隐式原型的值是其构造函数的显式原型的值var o = {};console.log(o.__proto__ === Object.prototype);// true原型对象的co...原创 2018-10-02 08:58:16 · 171 阅读 · 0 评论 -
Angular作用域对象与控制器对象
Angular作用域对象与控制器对象基于AngularJS v1.2.29版本作用域对象它是一个js实例对象,ng-app指令默认创建一个根作用域对象($rootScope)它的属性和方法与页面中的指令或表达式是关联的控制器对象是一个js实例对象,用来控制AngularJS应用数据ng-controller指定控制器的构造函数,AngularJS会根据此构造函数创建控制器对象...原创 2018-10-04 18:36:26 · 383 阅读 · 0 评论 -
获取子窗口的window对象
iframe窗口名在Chrome控制台显示情况iframe没有设置id和name属性值,chrome控制台显示iframe名则是截取url地址最后一个斜杠后面的部分(猜测)iframe设置了id值但没有设name属性值,chrome控制台显示iframe名则是id属性值iframe同时设置了id值和name属性值,chrome控制台显示iframe名则是name属性值获取子窗口...原创 2018-03-25 14:32:22 · 5757 阅读 · 0 评论 -
AJAX发送GET、POST、DELETE、PUT请求到服务器
$.ajax({})设置contentType参数值为 'application/x-www-form-urlencoded;charset=UTF-8'(不设置contentType参数值也是这种也是这中情况)发送GET、POST请求只需要设置 type 参数值为对应的 'get'、'post'即可。发送DELETE、PUT请求时 先需要在web.xml配置文件中添加一个将post请...原创 2018-03-16 09:09:34 · 15552 阅读 · 0 评论 -
给动态添加的元素绑定事件
on()方法jQuery的on()方法即可完成给页面上动态添加的元素绑定事件。$(选择器1).on(events,选择器2,function(event){ // do something...});参数解释选择器1:页面上非动态生成祖先元素选择器。动态添加的元素一定是页面上非动态生成的某个元素的后代元素,所以选择器1就是动态生成的后代元素所属的祖先元素的选择器。...原创 2018-01-17 13:18:16 · 587 阅读 · 0 评论 -
JS中var关键字声明的变量的作用域
var关键字声明变量,无论声明在何处,都会被视为声明在函数的最顶部(不在函数内即在全局作用域的最顶部)。function aa() { if(bool) { var test = 'hello man'; } else { console.log(test); }} 上述代码其实等价于下面的代码functio原创 2018-01-13 09:03:28 · 1917 阅读 · 0 评论 -
JS实时监听输入框中的内容
有时候我们需要实时监听输入框中值得变化,这里得实时监听是指当我们获取到输入框焦点,并在其中键入字符的时候,我们可以监听到当每次键入字符后,获取输入框中的内容。如下图当在上边的输入框中每次输入一个字符,箭头指向的内容显示区域都会实时显示键入字符后输入框中的内容。具体实现方式是:给输入框input绑定onpropertychange和oninput事件。 1.onp原创 2018-01-13 09:06:11 · 14869 阅读 · 0 评论 -
JS中将字符串转换大小写
toLowerCase()方法会将字符串中的字母字符全部转换为小写,对非字母字符无影响,返回值是转换后的字符串。toUpperCase()方法会将字符串中的字母字符全部转换为大写,对非字母字符无影响,返回值是转换后的字符串。原创 2018-01-15 08:45:24 · 8234 阅读 · 0 评论 -
JS对数值数组进行排序
1.写一个排序函数,这个排序函数规定排序规则,即是按升序还是按降序// 升序排序函数function numAscSort(a,b){ return a - b;}// 降序排序函数function numDescSort(a,b){ return b - a ;}2.调用数组的sort方法,并将排序函数传进去,返回值是对数组的引用,数组在原数组上进行排序,不生成副本原创 2018-01-15 08:53:31 · 712 阅读 · 0 评论 -
JS判断某个元素是否在数组中
利用$.inArray(value,array,[fromIndex])方法完成判断$.inArray(value,array,[fromIndex])参数第一个参数:要判断的元素第二个参数:目标数组第三个参数:从数组的哪个位置开始判断,不写时默认从下标为0的位置开始返回值如果元素在数组中,则返回该元素在目标数组中的位置,没有找到,则返回-1原创 2018-01-15 08:57:56 · 697 阅读 · 0 评论 -
JS删除数组中的某个元素
数组对象的splice()方法arrayObject.splice(index,howmany,item1,.....,itemX)作用 splice()向/从数组中添加/删除项目,然后返回被删除的项目。该方法直接操作的是原数组,即如果删除或者添加某个元素,都会反映在原数组上,被删除元素后面的所有的元素都会向前移动一位参数 index: 整数,规定添加/删除项目的位置,使用负数可从原创 2018-01-15 13:05:31 · 4299 阅读 · 1 评论 -
JS分割字符串——split()
split()方法可以根据某个字符分割字符串,也可以根据某个单词分割字符串 根据某个字符分割字符串,返回值是一个字符串数组,下面示例的返回值数组中的内容为abc def xxx. var str = 'abc_def_xxx.'; var strArray = str.split('_');根据某个字符串(比如一个单词)分割字符串,返回值是一个字符串数组,下面示例的返回值原创 2018-01-16 08:58:42 · 2930 阅读 · 0 评论 -
JS删除字符串中所有的英文双引号
使用String对象的replace()方法,将所有匹配到的双引号替换为空串,达到删除双引号的效果注意:replace()方法第一个参数,这里匹配所有的双引号需要使用正则表达式,英文双引号需要使用反斜杠转义msg = msg.replace(/\"/g,"");原创 2018-01-17 12:50:23 · 8482 阅读 · 0 评论 -
判断JS对象类型
$.type()方法可以判断对象的类型,返回值是String类型示例://获取每页显示的记录数、当前记录总数,计算新添加的记录在第几页var totalRecord = tableContent.length;var pageSize = $(".layui-laypage-limits").find("select").val();console.log("每页显示的记录数:"+pageS原创 2018-01-17 12:53:04 · 228 阅读 · 0 评论 -
点击回车键禁止提交表单
方法一:万能代码,该代码适合在既需要实时监听input中的输入,又需要禁用enter提交表单时使用。当给input同时绑定input、propertychange、keydown三个事件时,在上述情况下利用chrome打断点进行debug,会触发keydown事件,该事件触发时,按键的值还并没有输入到文本框中,因此在此回调函数中获取input的value值为空。注意,其他两个事件不会触发。此方法实际原创 2018-01-17 12:58:16 · 744 阅读 · 0 评论 -
将数组中的元素拼接为一个字符串
join()方法利用JS数组的join()方法即可完成将元素拼接为一个字符串。arrayObject.join(separator);备注:join()方法不给定分隔符的时候,默认以英文逗号作为分隔符toString()方法可以使用JS数组的toString()方法,它默认以英文逗号作为分隔符arrayObject.toString();原创 2018-01-18 08:56:23 · 37736 阅读 · 0 评论 -
JS正则表达式(持续记录中...)
+匹配一个或者多个字符,* 匹配零个或者多个字符需求:首字符必须是字母或者下划线,后面的字符可以是字母、数字、下划线 错误的正则:^[a-zA-Z_][a-zA-Z0-9_]+$ 上述正则匹配的是:以字母或者下划线开头,后面的字符可以是字母、数字、下划线,但是后面的字符必须有一个或者多个。有一个或者多个是由 + 号决定 正确的正则:^[a-zA-Z_][a-zA-Z0-9_]*$ 上述正...原创 2018-01-18 09:14:55 · 186 阅读 · 0 评论 -
JS给非对象数组去重
核心思想把需要去重数组中的元素作为属性名查对象中有没有它对应的属性值,如果有,则该元素重复了。去重详细步骤创建一个空的 JS 对象,用于去重。创建一个空的数组,用于保存去重后的元素。遍历原数组,将数组中的元素作为上一步创建的空对象的属性名,根据属性名获取属性值若能根据属性名从对象中获取到属性值,则说明重复了,不执行if代码块内的代码。注意下面判断重复的逻辑,判断条件是对获取到原创 2018-01-17 12:59:56 · 237 阅读 · 0 评论 -
点击button自动提交表单原因及解决方案
分析情景描述有时候我们可能需要在表单中放置多个按钮,比如表单页面常见的按钮有创建和取消。点击创建按钮会触发单击响应事件,在单击响应事件中进行提交表单,这没有任何问题。点击取消按钮的时候,触发对应的单击响应事件,这个单击响应事件中主要处理关闭表单页面逻辑,所以会关闭页面,这也正常。但是!打开控制台监听请求会发现,它也会提交表单。图示 关于途中三个按钮的代码片段<!-- 新增分区按钮 --><div原创 2018-02-03 14:27:40 · 14494 阅读 · 2 评论 -
JS动态为对象添加属性
JS允许在创建完一个对象后,动态给对象添加属性。如下var obj = {};// 动态给对象添加属性的常见方式obj.name = 'aaa';obj.age = 22;console.log(obj);// 不常见方式var key = 'address';var value = '南京市雨花台区';obj[key] = value;console.log(obj);备注:使用上原创 2018-02-03 14:39:08 · 77968 阅读 · 1 评论 -
Ajax请求发送成功但不进success方法
情况描述:ajax发送成功,后台也成功响应请求,并返回了json数据,通过chrome监听请求也可以看到响应的json数据,但是就是不进success方法,反而跑到error方法中了前端:$.ajax({ type : "get", data : {'dbId':node.dbId,'viewId':node.id,'date':new Date()}, url : "${ctp}/原创 2018-01-17 09:28:59 · 9265 阅读 · 3 评论 -
Easy ui之Tree节点右键菜单
情况描述有时候我们希望在右键Tree节点的时候在右键的位置弹出右键菜单进行一些额外的操作,如下图所示,右键DEPT表弹出菜单 实现定义右键菜单项,注意这里定义的右键菜单要加上 easyui 的 easyui-menu class<div id="tableOperate" class="easyui-menu" style="width:120px;"> ...原创 2018-03-15 08:51:34 · 2155 阅读 · 0 评论 -
Angular指令
Angular指令常用指令ng-app:指定模块名,angular管理的区域ng-model:双向绑定,输入相关标签ng-init:初始化数据ng-click:调用作用域对象的方法(点击时),值为函数调用,可以传$eventng-controller:指定控制器构造函数名,内部会自动创建一个新的子作用域ng-bind:解决使用{{}}显示数据闪屏(在很短时间内...原创 2018-10-04 18:37:30 · 292 阅读 · 0 评论