radio设置属性checked属性不生效
jq中使用attr()函数来设置选择框的checked属性有时会不起作用(设置不生效)
$('#import').attr('checked','checked');
这时可以用prop()函数来设置就可以了(正常设置成功)
$('#import').prop('checked','checked');
attr()和prop()的区别
attr()方法主要是用来处理自定义的DOM属性;
prop()方法主要是用来处理本身就带有的固有属性
使用: 具有true和false属性的属性,就使用prop(),比如checked selected disabled等,其他的使用attr()
mui获取单选、复选框的值
单选框获取值
function getRadioRes(className) { var rdsObj = document.getElementsByClassName(className); var chackVal = null; for(i = 0; i < rdsObj.length; i++) { if (rdsObj[i].checked) { chackVal = rdsObj[i].value; } } return chackVal; }
复选框获取值
function getRadioRes(className) { var rdsObj = document.getElementsByClassName(className); /*获取值*/ var checkVal = new Array(); var k = 0; for (i = 0; i < rdsObj.length; i++) { if (rdsObj[i].checked) { checkVal[k] = rdsObj[i].value; k++; } } return checkVal; }
判断localStorage中指定属性是否存在
1.
if (localStorage.getItem("key") != null) { //自定义代码 alert('key 存在') } else { alert('key 不存在') }
2.
localStorage.hasOwnProperty('key') ? alert('key 存在') : alert('key 不存在');
div禁用,不可点击
.notclick{
pointer-events:none;
}
特殊字符导致的json字符串转换json对象出问题的解决方法
att = att.replace(/[\r\n]/g,"");
解决部分机型返回不刷新问题
//解决部分机型返回不刷新问题
window.onpageshow = function(event) {
//event.persisted 是否从缓存中读取数据
if (event.persisted) {
window.location.reload()
}
};
强制不换行
white-space:nowrap;
text-align: justify不生效的解决办法
问题:text-align: justify样式在安卓可以正常两端对齐,iOS却不行
解决:
添加text-align-last: justify;
.text { text-align: justify; text-align-last: justify; height:30px;/*注意这里要设置固定高度*/ }
然后添加伪元素::after,使文本不在最后一行
::after { display: inline-block;/*行内元素*/ content: ''; width: 100%;/*可以挤掉文字,保证不跟文字在同一行*/ height: 0; visibility: hidden; }
JS正则表达式只允许数字,分号和连字符
/^\d+((;\d+)*|-\d+)?$/
(;\d+)*
将检查分隔多个号码“;”
-\d+
将检查范围
jq获取多个相同name名的input框的value值
var arr = [];
$("input[name='question']").each(function() {
arr.push($(this).val());
})
console.log(arr);
获取ID含有特殊字符的DOM元素
原生js
document.getElementById(rowId)
jq:使用属性选择器
// 将所有的id值用双引号包起来,即可进行识别 // 请注意双引号添加的位置,只在id上进行包裹 $('[id="' + rowId + '"]')
获取指定时间的时间戳
function getTargetTime(t) {
return new Date(t).getTime()
}
时间戳转换为日期
function add0(m) {
return m < 10 ? '0' + m : m
}
function format(shijianchuo) {
//shijianchuo是整数,否则要parseInt转换
var time = new Date(shijianchuo);
var y = time.getFullYear();
var m = time.getMonth() + 1;
var d = time.getDate();
var h = time.getHours();
var mm = time.getMinutes();
var s = time.getSeconds();
return y + '-' + add0(m) + '-' + add0(d) + ' ' + add0(h) + ':' + add0(mm) + ':' + add0(s);
}
js金额转大写
function intToChinese(money) {
//汉字的数字
var cnNums = new Array('零', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖');
//基本单位
var cnIntRadice = new Array('', '拾', '佰', '仟');
//对应整数部分扩展单位
var cnIntUnits = new Array('', '万', '亿', '兆');
//对应小数部分单位
var cnDecUnits = new Array('角', '分', '毫', '厘');
//整数金额时后面跟的字符
var cnInteger = '整';
//整型完以后的单位
var cnIntLast = '元';
//最大处理的数字
var maxNum = 999999999999999.9999;
//金额整数部分
var integerNum;
//金额小数部分
var decimalNum;
//输出的中文金额字符串
var chineseStr = '';
//分离金额后用的数组,预定义
var parts;
if (money === '') { //不能用==
return '';
}
money = parseFloat(money);
if (money >= maxNum) {
//超出最大处理数字
return '';
}
if (money == 0) {
chineseStr = cnNums[0] + cnIntLast + cnInteger;
return chineseStr;
}
//转换为字符串
money = money.toString();
if (money.indexOf('.') == -1) {
integerNum = money;
decimalNum = '';
} else {
parts = money.split('.');
integerNum = parts[0];
decimalNum = parts[1].substr(0, 4);
}
//获取整型部分转换
if (parseInt(integerNum, 10) > 0) {
var zeroCount = 0;
var IntLen = integerNum.length;
for (var i = 0; i < IntLen; i++) {
var n = integerNum.substr(i, 1);
var p = IntLen - i - 1;
var q = p / 4;
var m = p % 4;
if (n == '0') {
zeroCount++;
} else {
if (zeroCount > 0) {
chineseStr += cnNums[0];
}
//归零
zeroCount = 0;
chineseStr += cnNums[parseInt(n)] + cnIntRadice[m];
}
if (m == 0 && zeroCount < 4) {
chineseStr += cnIntUnits[q];
}
}
chineseStr += cnIntLast;
}
//小数部分
if (decimalNum != '') {
var decLen = decimalNum.length;
for (var i = 0; i < decLen; i++) {
var n = decimalNum.substr(i, 1);
if (n != '0') {
chineseStr += cnNums[Number(n)] + cnDecUnits[i];
}
}
}
if (chineseStr == '') {
chineseStr += cnNums[0] + cnIntLast + cnInteger;
} else if (decimalNum == '') {
chineseStr += cnInteger;
}
return chineseStr;
}
数组对象相关
有一个数组对象前来参加
var arr = [{
"id": "1",
"name": "小黑"
}, {
"id": "2",
"name": "小白"
}, {
"id": "3",
"name": "小灰"
}];
判断数组对象中是否包含某个值
/**
* 判断数组对象中是否有某个值
* array 要查询的数组
* attr 要查询的字段
* val 要查询的字段值
*/
function findElem(array, attr, val) {
for (var i = 0; i < array.length; i++) {
if (array[i][attr] == val) {
return i; //返回当前索引值
}
}
return -1;
};
console.log(findElem(arr, 'name', '小白')) //为-1表示不存在,否则返回查询到的第一个下标
返回包含指定值的对象
//返回包含指定值的对象
var status = arr.filter(function(obj) {//返回arr中包含id=2的对象
return obj.id == 2;
});
根据数组对象属性删除里面的对象
/*
* 根据数组对象属性删除对应项
* @param {Array} arr - 数组对象
* @param {String} attr - 属性
* @param {} value - 属性值
* @return void
*/
removeByValue(arr, attr, value)
{
var index=0;
for(var i in arr){
if(arr[i][attr]==value){
index=i;
break;
}
}
arr.splice(index,1);
}
// 移除id=2的项
removeByValue(arr, 'id', '2')
根据数组对象某一属性值排序
function compare(property){
return function(a,b){
var value1 = a[property];
var value2 = b[property];
return value1-value2; //正序 [value2-value1为逆序]
}
}
var result = arr.sort(compare('id'))
数组对象去重
方法1:利用对象访问属性的方法,判断对象中是否存在key
var result = []; var obj = {}; for(var i =0; i<arr.length; i++){ if(!obj[arr[i].key]){ result.push(arr[i]); obj[arr[i].key] = true; } } console.log(result);
方法2:利用reduce方法遍历数组,reduce第一个参数是遍历需要执行的函数,第二个参数是item的初始值
var obj = {}; arr = arr.reduce(function(item, next) { obj[next.key] ? '' : obj[next.key] = true && item.push(next); return item; }, []); console.log(arr);
删除数组中的指定值
var arr = ["123", "456", "789"];
function removeByValue(arr, value)
{
var index=0;
for(var i in arr){
if(arr[i]==value){
index=i;
break;
}
}
arr.splice(index,1);
}
removeByValue(arr, '123')
图片转base64
function getBase64Image(img) {
var canvas = document.createElement("canvas");
canvas.width = img.width;
canvas.height = img.height;
var ctx = canvas.getContext("2d");
ctx.drawImage(img, 0, 0, img.width, img.height);
var ext = img.src.substring(img.src.lastIndexOf(".")+1).toLowerCase();
var dataURL = canvas.toDataURL("image/"+ext);
return dataURL;
}
var image = new Image();
image.src = "../img.png";
image.onload = function(){
var base64 = getBase64Image(image);
console.log(base64);
}
JS对象与字符串相互转换
对象转字符串
JSON.stringify(obj)
json字符串转json对象
JSON.parse(str)
I'm so cute. Please give me money.
- 本文链接:https://wangyou.ink/2022/01/22/something/
- 版权声明:本博客所有文章除特别声明外,均默认采用 许可协议。