【uniapp&Layui】大汇总

【 JavaScript && JQuery 】


jQuery 获取文件后缀的方法
var location=“https://runzhixian.oss-cn-beijing.aliyuncs.com/道德经/道德经第24章.mp3”;
var point = location.lastIndexOf(“.”);
var type = location.substr(point);
if(type==“.MP3”||type==“.mp3”||type==“.wav”||type==“.mid”){ }

event.stopPropagation(); // 阻止事件冒泡
$(this).addClass(‘on’).siblings().removeClass(‘on’); // jq选中事件
$(this).find(“.item”).first().addClass(“active”); // jq给第一个子元素追加类名

允许跨域请求的
location ~* .*$ { add_header Access-Control-Allow-Origin *; }
<!-- 将http请求转成https请求 -->
<meta http-equiv=“Content-Security-Policy” content=“upgrade-insecure-requests”>
————————————————————————————————————

a 标签跳转

只需要给a标签加一个属性:target=“_blank” 就可以在跳转的时候打开新的页面
<a class=“layui-btn layui-btn-xs” target=“_blank” href=“#/channel/alipay_issue/lay_id=2”>去发布</a>
window.open(‘_blank’).location=layui.setter.baseUrl+‘h5’;//新页跳转
str.replace(“需要替换的字符串”,“新字符串”) 
————————————————————————————————————

设置浏览器缓存

localStorage.setItem(‘buyer_id’, ‘111’); // 设置缓存
localStorage.getItem(‘buyer_id’) // 得到缓存
————————————————————————————————————

视频 封面图

:poster=“bitem+‘?x-oss-process=video/snapshot,t_3000,m_fast,f_png’”
<video controls class=“wp-100” :src=“bitem”
:poster=“bitem+‘?x-oss-process=video/snapshot,t_3000,m_fast,f_png’”></video>
————————————————————————————————————

disabled 动态添加和移除disabled属性

$(‘#uid’).attr(“disabled”,true);
$(‘#uid’).attr(“disabled”,false);
————————————————————————————————————

sort 数组(排序)

var nums = [9,8,3,5,1,6];
nums = nums.sort();
————————————————————————————————————

unshift 在数组首位追加元素

data.unshift({id:0,images:“”,name:“全部分类”});
var array = new Array();
array.unshift();
————————————————————————————————————

splice 删除当前

var arr = str.split(‘,’);
datas.splice(_index, 1);
————————————————————————————————————

substring 删除字符串最后一个字符

str = str.substr(1); //删除第一个字符
str = str.substr(0, str.length - 1); //删除最后一字符
————————————————————————————————————

a[0][‘gender’] 对象数组,如何给对象添加一个新属性

a[0][‘gender’] = “women”;
a[0][‘address’] = “China”;
a[1].province = “Jiangsu”;
this.data_list.forEach((item, index) => { item[item.name+‘_code’]=‘’ })
let aa={}, _json=eval(“(”+datas.field.area+“)”);
_json.forEach((item, index) => { aa[‘region[’+index+‘][city]’]=item.value; })
————————————————————————————————————

splice 删除数组中的指定元素

var arr = [‘b’,‘a’,‘c’];
var key = arr.indexOf(‘a’); // 获取下标
arr.splice(key, 1);
————————————————————————————————————

hasClass 检查被选择的元素是否包含指定的class名

if( $(that).hasClass(‘on’) ){ console.log(‘056565’) }
————————————————————————————————————

jq 选中事件

$($this).toggleClass(‘dtree_this’);
$($this).siblings().removeClass(‘dtree_this’);
————————————————————————————————————

HTML img src 图片路径不存在,则显示一张默认图片的方法

<img src=“'img/error.png” οnerrοr=“this.src=‘img/error.png’”/>

css 图片居中

vertical-align: middle; width: auto; height: auto; max-width: 100%; max-height: 100%;
/* 向父元素定位 */
position: absolute; top:50%; left:50%; transform: translate(-50%,-50%);

envVersion: 小程序 当前环境版本:develop开发版、trial体验版、release正式版、gray灰度版(仅支付宝小程序支持)

// #ifdef MP-WEIXIN || MP-ALIPAY
let miniProgram  = uni.getAccountInfoSync().miniProgram // 微信&支付宝小程序帐号信息
let curVersion = miniProgram.envVersion;
// #endif
// #ifdef MP-WEIXIN
const version = __wxConfig.envVersion; // 微信小程序
// #endif

设置浏览器缓存
localStorage.setItem(‘buyer_id’, ‘111’); // 设置缓存
localStorage.getItem(‘buyer_id’) // 得到缓存

layui复选框***将页面全部复选框选中的值拼接到一个数组中

var arr_box = [];
$(‘input[type=checkbox]:checked’).each(function() { arr_box.push($(this).val()); });
console.log(arr_box);
// *****checkbox选中复选框
$(‘tr[data-index=’ + index + ‘] input[type=“checkbox”]’).prop(‘checked’, true);

js正则表达 去除开头和结尾的逗号

var str=“,A,B,C,”;
str=str.replace(/^(\s|,)+|(\s|,)+$/g, ‘’);
————————————————————————————————————
首先使用 filter 方法过滤出 checked 属性为 true 的对象,然后使用 map 方法提取这些对象的 id 属性
const topics = [
{ id: 1, name: ‘热门话题’, checked: false },
{ id: 2, name: ‘佳作鉴赏’, checked: false },
{ id: 3, name: ‘艺圈动态’, checked: true },
{ id: 4, name: ‘艺术知识’, checked: true },
{ id: 5, name: ‘艺闻趣事’, checked: false },
{ id: 6, name: ‘藏家秀’, checked: false }
];
const checkedTopicIds = topics.filter(topic => topic.checked).map(topic => topic.id);
console.log(checkedTopicIds); // 输出 [3, 4]
————————————————————————————————————
使用 find 方法找到 name 属性为 “微信支付” 的对象,并提取其 value 属性
const paymentMethods = [
{ id: 1, name: “余额支付”, value: “money”, logo: “https://fireworld.oss-cn-beijing.aliyuncs.com/uploads/images/2024/06-13/666a4da54ebeb.png” },
{ id: 3, name: “微信支付”, value: “wx_lite”, logo: “https://fireworld.oss-cn-beijing.aliyuncs.com/uploads/images/2024/06-13/666a4d94adc03.png” }
];
const wechatPayValue = paymentMethods.find(method => method.name === “微信支付”).value;
console.log(wechatPayValue); // 输出 “wx_lite”

序列化 && 反序列化

序列化,即js中的Object转化为字符串

toString() 方法用于数组【】返回以一个字符串

  • 1.使用toJSONString
  • var last=obj.toJSONString(); //将JSON对象转化为JSON字符
  • 2.使用stringify
  • var last=JSON.stringify(obj); //将JSON对象转化为JSON字符
反序列化,即js中JSON字符串转化为Object
  • 1.使用eval
  • var obj=eval(“(”+data+“)”);
  • 2.使用parseJSON
  • var obj = data.parseJSON(); //由JSON字符串转换为JSON对象
  • 3.使用parse
  • var obj = JSON.parse(data); //由JSON字符串转换为JSON对象

/* PC端 */
@media (min-width: 768px){}
@media (min-width: 992px){}
@media (min-width: 1200px){}

/* 手机端 */
@media screen and (max-width: 750px) {}

判断字符串是不是超链接

let strReg = /https?:\/\/(www\.)?[-a-zA-Z0-9@:%._\+~#=]{1,256}\.[a-zA-Z0-9()]{1,6}\b([-a-zA-Z0-9()@:%_\+.~#?&amp;//=]*)/;
let reg = strReg.test('https://hao.360.com/?a1111');
if(reg){
	// 是超链接
} else{
	// 否
}

获取URL地址栏的值

function getParams(name) { 
	var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i"); 
	var r = window.location.search.substr(1).match(reg); 
	if (r != null) return unescape(r[2]); return null; 
}
var cid=getParams('cid');

去除重复的对象

let arr_list = uni.getStorageSync('tag_list')||[];
let new_arr = [];
for(var i in arr_list) {
	if(new_arr.indexOf(arr_list[i])==-1) { new_arr.push(arr_list[i]); }
}
this.tag_list = new_arr;

数组去重

function unique(arr,initArr=[]) {
    arr.forEach(item=>{
        let isFind = initArr.find(cell=> cell.id === item.id)
        if(!isFind) { initArr.push(item) }
    })
    return initArr
}

【layui】


table.resize(‘shipList’);
$(e.elem).attr(‘data-name’)

Form表单的自定义验证规则

<div class="layui-form-item" style="margin-bottom: 0px;">
    <label class="layui-form-label">所在类目</label>
    <div class="layui-input-block" id="catids_1">
       <input type="checkbox" value="1" title="烟花爆竹" lay-skin="primary" lay-verify="checkbox">
    </div>
</div>

form.verify({
    checkbox:function (value, item) {
        if($('#catids_1 input:checked').length==0){
            return "请选择产品所在类目";
        }
    }
});
<div class="layui-form-item">
    <label class="layui-form-label">经度</label>
    <div class="layui-input-block">
        <input type="text" name="lng" lay-verify="jwd" placeholder="请输入经度,例如:116.397827" autocomplete="off" class="layui-input">
    </div>
</div>

//自定义验证规则
form.verify({
    jwd:function (value) {
        if(value&&isNaN(Number(value,10))){
            return '经纬度格式错误'
        }
    }
})

时间戳转换

{{item.create_time*1000|time('yyyy.MM.dd hh:mm') }}
templet: "<div>{{layui.util.toDateString(d.update_time*1000, 'yyyy/MM/dd HH:mm:ss')}}</div>"

复选框-将所有复选框选中的值拼接到一个数组中

var arr_box = [];
$('input[type=checkbox]:checked').each(function() {
	arr_box.push($(this).val());
});
console.log(arr_box);

复选框-checkbox选中复选框

$('tr[data-index=' + index + '] input[type="checkbox"]').prop('checked', true);
form.render();

admin.popup弹窗关闭的事件【end】

admin.popup({
     title: "",
     area: admin.screen() < 2 ? ['85%', '70%'] : ["450px", "300px"],
     success: function (layero, paym2_index) { },
     // 层销毁后触发的回调:无论是确认还是取消,只要层被销毁了,end都会执行,不携带任何参数。
     end: function(){
          // 层级销毁后,关闭定时器
          clearInterval(time_ali);
          return false;
     },
});

【uniapp】


[uni-pop]-默认弹出

setTimeout(()=>{ this.$refs.popup.open() },200)

微信公众号的登录 baseUrl是域名

// #ifdef H5
let url = encodeURIComponent(window.location.href);
let ua = window.navigator.userAgent.toLowerCase();
let referid=GetQueryString('referid')||0; //获取url参数
if (ua.match(/MicroMessenger/i) == 'micromessenger') {
	// 微信浏览器
	window.location.href = baseUrl + 'user/oauth?app_type=wx_pub&referid=' + referid + '&redirect_url=' + url;
}
// #endif
// 获取传值参数
function GetQueryString(name){
	let href=window.location.href;
	if(href.indexOf('?')>-1&&href.indexOf(name)>-1){
		var reg = new RegExp("(^|&)"+ name +"=([^&]*)(&|$)");
		var r = href.substr(1).match(reg);
		if(r!=null){return  decodeURI(r[2]);}else{
			let str1=href.split(name)[1];
			let res=null;
			if(str1.indexOf('&')>-1){
				let str2=str1.split('&')[0];
				res=str2.split('=')[1];
			}else{
				res=str1.split('=')[1];
			}
			return res;
		} 
	}else{
		return uni.getStorageSync('referid')||0;;
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值