jQuery的一些收藏

jQuery数组处理函数

目录

jQuery数组处理函数

小的方法收藏 

JQuery 的选择器 


jQuery的数组处理函数整理如下,如有补充和建议,欢迎评论交流~
1、$.trim(value) 
从value中删除任何前导或尾随的空白字符
 
2、$.each(container, callback(key,value)) 
对container的每一项进行迭代,为每一项调用回调函数callback。
container 可以是对象或数组。如果是js对象,则迭代其每个属性;如果是数组,则迭代其每个元素。
 
3、$.extend(target, source1, source2, ..., sourcen) 
用source1...n 对象的属性来扩展target对象。返回值为扩展后的对象。 
 
4、$.getScript(url, callback) 
动态加载js脚本。并在成功获取脚本时调用回调函数。
 
5、$.noConflict 
避免$别名冲突。一旦执行$.noConflict函数,就必须使用jQuery名称调用。
 
6、$.grep(array, callback, invert) 
遍历已传入的数组,为各元素调用对调函数。回调函数的返回值决定是否把当前元素收集到新数组,新数组作为$.grep的返回值。callback回调函数需要返回一个bool类型的值。如果invert省略或为false,则回调函数返回TRUE的元素被收集到返回结果中。invert为true,则回调函数返回false的元素被收集到返回结果中。
7、$.map(array,[callback])

转换函数会为每个数组元素调用, 而且会给这个转换函数传递一个表示被转换的元素作为参数. 转换函数可以返回转换后的值、null(删除数组中的项目)或一个包含值的数组, 并扩展至原始数组中。

8、$.inArray(val,array)
判断值是否存在于数组中,从0开始计数(如果没有找到则返回-1)
 
9、$.merge(first,second)
合并两个数组。返回的结果会修改第一个数组的内容——第一个数组的元素后面跟着第二个数组的元素。这个方法是用jQuery的方法替代原生concat()方法, 但功能并没有concat()强大, concat()可以同时合并多个数组。
 
10、$.unique(array)
过滤数组中重复元素,删除数组中重复元素. 只处理删除DOM元素数组,而不能处理字符串或者数字数组
 
11、$.makeArray(obj)
将类数组对象转换为数组对象, 类数组对象有 length 属性,其成员索引为0至 length-1。
12、$(dom).toArray()

把jQuery集合中所有DOM元素恢复成一个数组。并不常用的方法, 个人甚至觉得它和$.makeArray一样多余.

小的方法收藏 

获取这个月1日 和 N个月后的1日的 时间日期 列:2021-09-01
type true 当前月向后的 last个月   false 当前月向前 last个月
function getYearDay(last=1,type=false){   
    var date = new Date();     
    var year = date.getFullYear();//取当前的年份         
    var month = date.getMonth() + 1;
    if(type){
	    var last_year = year;
	    var last_month= month + last;
	    if(last_month > 12){        
	        last_month = last_month -12;
	        last_year++;
	    }        
	    return {now:year +'-'+ month +'-01',end:last_year +'-'+ last_month +'-01' } ;
    }

    var last_year = year;
    var last_month= month - last;
    
    if(last_month < 1){        
	    last_month = 12- ( last - month);
	    last_year--;
    }        
    return {now:last_year +'-'+ last_month +'-01',end:year +'-'+ month +'-01'} ;
}

/************************ 优化版 ***********************************/
function getYearDay(last=1,type=false){   
    var date = new Date();
    let now = new Date();
    let end = new Date( date.setMonth(date.getMonth() - last) );  
    if(type){
	end = new Date( date.setMonth(date.getMonth() + last) );   
	return {now:now,end:end} ;
    }
    return {now:end,end:now} ;
}
/*********************** 优化版 *************************************/


比之自己写的哪个好用多了 2021-9-26 补充
/*********************** 推荐这个用法 实在是简介的很 *****************/
var startDate = new Date();
startDate.setMonth(startDate.getMonth() - 6);
/*********************** 推荐这个用法 实在是简介的很 *****************/



对cs除数,和bcs被除数  进行百分比取小时点2位
function getBaiFenBi(cs,bcs){
    let val = (cs / bcs) * 100;
    return new Number(val).toFixed(2)  +'%';
}

对console.log 的分装/就是懒的 不想打console
arguments 是不固定参数 的集合 小知识
var log = function(form){
    for (var i = 0; i < arguments.length; i++) {
	    console.log(arguments[i]);//在这里输出传过来的参数
    }
}


/**
利用js 实现一个下载 this_url 是文件的url 地址
*/
function download_upload(obj){
    var this_url = $(obj).attr('dataUrl');
    var a = document.createElement('a');
    a.download = 'data.doc';
    a.href=this_url;
    a.click()
}

删除一个数组下标
properties['defValue']=[]
properties['defValue'].splice(index,1);

验证url是否正确
function checkUrl (url) {
    var strRegex = '^((https|http|ftp|rtsp|mms)?://)?'
    +'(([0-9a-z_!~*().&=+$%-]+: )?[0-9a-z_!~*().&=+$%-]+@)?' //ftp的user@
    +'(([0-9]{1,3}.){3}[0-9]{1,3}|'// IP形式的URL- 199.194.52.184
    +'([0-9a-z_!~*()-]+.)*'// 域名- www.
    +'[a-z]{2,6})'//域名的扩展名
    +'(:[0-9]{1,4})?'// 端口- :80
    +'((/?)|(/[0-9a-z_!~*().;?:@&=+$,%#-]+)+/?)$';
    return new RegExp(strRegex).test(url);
}

JQuery 的选择器 

 收藏一位大牛的 https://www.cnblogs.com/swjian/p/6363614.html


1 .基本选择器
$("#test")                    选择id值为test的元素,id值是唯一的所以返回单个元素。
$("div")                      选择所有的div标签元素,返回div元素数组 
$(".myclass")                 选择使用myclass类的css的所有元素 
$("*")                        选取所有元素。
$("#test,div,.myclass")        选取多个元素。

2.层次选择器
$("div span")             选取<div>里的所有<span>元素

$("div >span")             选取<div>元素下元素名是<span>的子元素

$("#one +div")             选取id为one的元素的下一个<div>同辈元素        等同于$("#one").next("div")

$("#one~div")              选取id为one的元素的元素后面的所有<div>同辈元素    等同于$("#one").nextAll("div")
  
$("#one").siblings("div")      获取id为one的元素的所有<div>同辈元素(不管前后)

$("#one").prev("div")        获取id为one的元素的前面紧邻的同辈<div>元素 所以 获取元素范围大小顺序依次为:

$("#one").siblings("div")>$("#one~div")>$("#one +div")  或是

$("#one").siblings("div")>$("#one").nextAll("div")>$("#one").next("div")

3.基本过滤选择器
$("div:first")                 选取所有<div>元素中第1个<div>元素
$("div:last")                   选取所有<div>元素中最后一个<div>元素
$("input:not(.myClass)")        选取class不是myClass的<input>元素 
$("input:even")                 选取索引是偶数的<input>元素(索引从0开始) 
$("input:odd")                  选取索引是基数的<input>元素(索引从0开始) 
$("input:eq(2)")                选取索引等于2的<input>元素 
$("input:gt(4)")                选取索引大于4的<input>元素
$("input:lt(4)")                选取索引小于4的<input>元素
$(":header")                    过滤掉所有标题元素,例如:h1、h2、h3等
$("div:animated")               选取正在执行动画的<div>元素  
$(":focus")                     选取当前获取焦点的元素

4.内容过滤选择器
$("div:contains('Name')")       选取所有<div>中含有'Name'文本的元素 
  
$("div:empty")                  选取不包含子元素(包括文本元素)的<div>空元素 

$("div:has(p)")                 选取所有含有<p>元素的<div>元素 

$("div:parent")                 选取拥有子元素的(包括文本元素)<div>元素

5.可见性过滤选择器
$("div:hidden")                 选取所有不可见的<div>元素 

$("div:visible")                选取所有可见的<div>元素

6.属性过滤选择器
$("div[id]")                  选取所有拥有属性id的元素
$("input[name='test']")        选取所有的name属性等于'test'的<input>元素 
 
$("input[name!='test']")      选取所有的name属性不等于'test'的<input>元素 
 
$("input[name^='news']")        选取所有的name属性以'news'开头的<input>元素 
$("input[name$='news']")        选取所有的name属性以'news'结尾的<input>元素 
$("input[name*='news']")        选取所有的name属性包含'news'的<input>元素 
$("div[title|='en']")           选取属性title等于'en'或以'en'为前缀(该字符串后跟一个连字符'-')的<div>元素
$("div[title~='en']")           选取属性title用空格分隔的值中包含字符en的<div>元素

$("div[id][title$='test']")     选取拥有属性id,并且属性title以'test'结束的<div>元素


7.子元素过滤选择器

$("div .one:nth-child(2)")       选取class为'one'的<div>父元素下的第2个子元素

$("div span:first-child")        选取每个<div>中的第1个<span>元素 

$("div span:last-child")         选取每个<div>中的最后一个<span>元素 

$("div button:only-child")       在<div>中选取是唯一子元素的<button>元素


8.表单对象属性过滤选择器
$("#form1 :enabled")             选取id为'form1'的表单内所有可用元素
$("#form2 :disabled")            选取id为'form2'的表单内所有不可用元素 
$("input :checked")              选取所有被选中的<input>元素   
$("select option:selected")      选取所有的select 的子元素中被选中的元素


9.表单选择器
$(":input")                      选取所有<input>,<textarea>,<select> 和 <button>元素 
$(":text")                      选取所有的单行文本框
$(":password")                   选取所有的密码框 
$(":radio")                      选取所有单的选框 
$(":checkbox")                   选取所有的多选框 
$(":submit")                     选取所有的提交按钮
$(":image")                      选取所有的图像按钮 
$(":reset")                      选取所有的重置按钮
$(":button")                     选取所有的按钮 
$(":file")                       选取所有的上传域
$(":hidden")                     选取所有不可见元素
class 下 input 的name 选择器
let node = $('#from-add-input').find('.layui-input-inline :input[name="'+name+'[]"]');

属性选择器
$.each($('#from-add-input').find('.layui-inline [data="reduce"]'),function(index,val){
    $(val).unbind();//取消绑定事件
    $(val).on('click',function(){
	if( $('#from-add-input').find('.layui-inline').length >1){
	    $(this).parent().parent().remove();
	}
    })
})

 Ajax 对302状态的修改

全局性的对ajax 进行302 状态处理
$(document).ajaxComplete(function (event, xhr, settings) {
    if (xhr.responseJSON != undefined &&  xhr.responseJSON.code == 302) {
	layer.msg(xhr.responseJSON.msg, {icon: 5, shift: 6});
	_this.reload(xhr);
    }
    if (xhr.responseJSON != undefined && xhr.responseJSON.code == 404) {
	layer.msg(xhr.responseJSON.msg, {icon: 5, shift: 6});
	_this.reload(xhr);
    }
});
/**
后台的返回php代码 laravel 部分截取
if ($islogin) {
    if ($request->ajax()) {
	return response()->json(['code' => 302,'msg' => $login_msg,
	    'location' => '/admin/login.html','data' => []]);
    } else {
	return redirect('admin/login.html');
    }
}
*/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值