张成的日常问题整理(新)
2017-09-19 09:52
411 查看
更多博客转移到github+hexo博客:https://zc95.github.io
//从数组里随机取一个数arr[Math.floor(Math.random()*arr.length)]
屏蔽网页右击
//阻止浏览器默认的右键点击事件 window.document.oncontextmenu = function () { return false; }
左击右击事件
function clickMe() { var event = event ? event : window.event; if (1 == event.which) { //左击 } if (3 == event.which) { //右击 } }
循环时候去掉最后一个逗号
var json = eval(msg), arr = []; for (var k in json[0]) { arr.push(k + ":" + json[0][k] + "条"); } $('#dataNum').html(arr.join(',')); 通常都用拼接字符串的方法,在尾部容易产生多余的逗号,不易去除。这里改为数组,再插入逗号比较方便;
判断是否存在id为item元素
if($('#item').length!=0){//因为jquery获取的元素是一个集合,看长度是否为0就可以知道是不是存在
//有元素
}else{
//没有元素
}
生成区间随机数
function getRandom(m,n){
return Math.floor(Math.random()*(n-m+1)+m)
}
小数转为百分数
Number(point*100).toFixed(2)+"%";
trim() 去掉前后空白
//去左空格;
function ltrim(s){
return s.replace(/(^\s*)/g, "");
}
//去右空格;
function rtrim(s){
return s.replace(/(\s*$)/g, "");
}
//去左右空格;
function trim(s){
return s.replace(/(^\s*)|(\s*$)/g, "");
}
数组去重
function QuChong(arr){
var newArr =[];
for(i in arr){
if(!newArr.includes(arr[i])){
newArr.push(arr[i]);
}
}
return newArr;
}
reverse();用于翻转数组,该方法会改变原来的数组,而不会创建新的数组。
sort()
function sortNumber(a,b)
{
return a - b;//升序
//return b - a;//倒序 或者升序之后用<span style="color: rgb(90, 103, 111); font-family: arial, STHeiti, "Microsoft YaHei", 宋体; font-size: 14px;">reverse()翻转数组</span>
}
arr.sort(sortNumber);
找出元素 item 在给定数组 arr 中的位置
function indexOf(arr, item) {
return arr.indexOf(item)
}
计算给定数组 arr 中所有元素的总和
function sum(arr) {
var hehe=0;
for(e in arr){
hehe += arr[e];
}
return hehe;
}
function sum(arr) {
return eval(arr.join('+'));
}
移除数组 arr 中的所有值与 item 相等的元素。不要直接修改数组 arr,结果返回新的数组
function remove(arr, item) {
var arr2 =[];
for(e in arr){
if(arr[e] != item){
arr2.push(arr[e]);
}
}
return arr2;
}
function remove(arr, item) {
var newArr = arr.slice(0);
while(newArr.indexOf(item)!=-1){
newArr.splice(newArr.indexOf(item),1);
}
return newArr;
}
移除数组 arr 中的所有值与 item 相等的元素,直接在给定的 arr 数组上进行操作,并将结果返回
function removeWithoutCopy(arr, item) {
while(arr.indexOf(item) != -1){
arr.splice(arr.indexOf(item),1);
}
return arr;
}
在数组 arr 末尾添加元素 item。不要直接修改数组 arr,结果返回新的数组
function append(arr, item) {
<span style="white-space:pre"> </span>return arr.concat([item]);
}
/**function append(arr, item) {
var newArr = arr.slice(0);
return newArr.push(item);
}**/
删除数组 arr 最后一个元素。不要直接修改数组 arr,结果返回新的数组
function truncate(arr) {
<span style="white-space:pre"> </span>var newArr = arr.slice(0);
<span style="white-space:pre"> </span>//newArr.pop();
//newArr.splice(newArr.length-1,1);
//newArr.splice(newArr.length-1);
return newArr;
}
在数组 arr 开头添加元素 item。不要直接修改数组 arr,结果返回新的数组
function prepend(arr, item) {
<span style="white-space:pre"> </span>return [item].concat(arr);
}
function prepend(arr, item) {
<span style="white-space:pre"> </span>var newArr = arr.slice(0);
newArr.unshift(item);
return newArr;
}
删除数组 arr 第一个元素。不要直接修改数组 arr,结果返回新的数组
function curtail(arr) {
return arr.slice(1);
}
合并数组 arr1 和数组 arr2。不要直接修改数组 arr,结果返回新的数组
function concat(arr1, arr2) {
return arr1.concat(arr2);
}
在数组 arr 的 index 处添加元素 item。不要直接修改数组 arr,结果返回新的数组
function insert(arr, item, index) {
var newArr = arr.slice(0);
newArr.splice(index,0,item);
return newArr;
}
统计数组 arr 中值等于 item 的元素出现的次数
function count(arr, item) {
var c=0;
for(e in arr){
if(arr[e]==item){
c++;
}
}
return c;
}
找出数组 arr 中重复出现过的元素
function duplicates(arr) {
var a=arr.sort(),b=[];
for(var i in a){
if(a[i]==a[i-1] && b.indexOf(a[i])==-1)
b.push(a[i]);
}
return b;
}
生成m到n的区间随机数
function getRand(m, n) {
var random = Math.floor(Math.random() * (n - m + 1) + m);
return random;
}
检查数组里是否包含了某值
arr.includes(item);//结果返回true和false
编写一个javscript函数 fn,该函数有一个参数 n(数字类型),其返回值是一个数组,该数组内是 n 个随机且不重复的整数,且整数取值范围是 [2, 32]。
//fn函数
function fn(n) {
var arr = [];
for (var i = 0; i < n; i++) {
var rnd = getRand(2, 32);
if (arr.includes(rnd)) {
i--;//减一是因为如果第i次循环的时候如果数组有了改值,就重新走一遍
} else {
arr.push(rnd);
}
}
return arr;
}
//生成区间随机数
function getRand(m, n) {
var random = Math.floor(Math.random() * (n - m + 1) + m);
return random;
}
//检查是否重复,这里直接用了 arr.includes(e)
function checkInArr(e,arr){
if(arr.indexOf(e)==-1){
return false;
}
return true;
}
//console.log(fn(5));
打乱一个数组
randomArr.sort(function () { return Math.random() > 0.5 ? -1 : 1; });
动态添加行
function AddRow(json) {
//json: [{"OperatorNum":"8000011","TollT":1,"TollY":2,"TollS":3,"TollC":4,"ArrearageNum":5,"ArrearageToll":6,"AddNum":7,"AddToll":8},{"OperatorNum":"总计","TollT":1,"TollY":2,"TollS":3,"TollC":4,"ArrearageNum":5,"ArrearageToll":6,"AddNum":7,"AddToll":8}]
$('#tbody').html('');
for (key in json) {
var _tr = $("<tr></tr>");
for (var k in json[key]) {
var _td = $("<td>" + json[key][k] + "</td>");
_tr.append(_td);
}
$('#tbody').append(_tr);
}
}
a标签的一些用法
<a href="javascript:void(alert('Warning!!!'))">点我弹窗</a>
<a href="javascript:void(0)">点我没效果</a>
<a href="#pos">点我定位到指定位置</a>
<a href="#">点我定位到顶部</a>
计算给定数组 arr 中所有元素的总和
//一般的方法
function sum(arr) {
var sum = 0;
for(var i =0;i<arr.length;i++){
sum = sum +arr[i];
}
return sum;
}
//或者可以这样
function sum(arr) {
return eval(arr.join("+"))
}
checkbox的一些用法
$("input[name='WeiZhi']"); //选取name为xx的元素
$("input[type='checkbox']").prop('checked',true); //设置checkbox选中
$("input[type='checkbox']").attr('checked'); //两种结果 "checked"和undefined,注意引号!
$("input[name='WeiZhi']:checked").length; // 选中的个数
小数转百分数
function toPercent(point) {
return Number(point * 100).toFixed(2) + "%";//保留2位小数
}
清除浮动
.clearfix:after, {
content: ".";
display: block;
height: 0;
clear: both;
visibility: hidden;
}
获取事件源
function test(){
var event = event? event: window.event;
var srcObj = ((event.srcElement)?event.srcElement:event.target);
alert($(srcObj));
}
阻止页面的表单元素自动联想填满
<form id="Content" autocomplete="off">
autocomplete="off"用来阻止浏览器自动填充(联想)
动态创建table
var json = eval(msg);
var tab = "";
if (json.length > 0) {
$.each(json, function (i, n) {
var num = i + 1;
tab += "<tr><td style='text-align:center;'>" + num + "</td><td>" + n.NianFen + "</td><td>" + n.YueFen + "</td><td>" + n.SFZName + "</td><td>" + n.DFNum + "</td><td>" + n.PJF + "</td><td>" + n.ZongFenShu + "</td><td>" + n.RenShu + "</td></tr>";
})
$("#tbody").html(tab);
}
查看的绑定
var json = eval(msg);
if (json.length > 0) {
for (var key in json[0]) {
$("#" + key).text(json[0][key]);
}
}
让input只能输入正整数
<input type="text" onkeyup="this.value=this.value.replace(/\D/g,'')" onafterpaste="this.value=this.value.replace(/\D/g,'')" />
注意:一般在JS中拼接的时候 符号 \ 会被视为转义字符,最后页面显示的是.replace(/D/g,'')" 。 所以在JS拼接时可以这样:.replace(/\\D/g,'')"
div自适应屏幕大小
document.getElementById('InforList').style.width = document.body.clientWidth * 0.90 + "px";
document.getElementById('InforList').style.height = window.innerHeight * 0.75 + "px";
var index = $('#HuoJia')[0].selectedIndex; // 选中索引
var HuoJia = $('#HuoJia')[0].options[index].text; // 选中文本
$("#HuoJia").find("option:selected").text() //简洁
join(',')是将数组用逗号隔开,转化为字符串
split('-')是以字符串中的-符号转化为数组
splice(3,1)是返回 从下标索引为3的位置切割出长度为1的字符
str.substring(3,5)是截取两个指定下标位置的字符串,这个是下标为3和5的位置
在写侧边栏点击变色的时候可以选择为li的点击事件加上addClass('active')和removeClass('active'),但是在样式表里你不能直接写.active的样式
注意看看之前有没有写过li的样式,比如你点击的这个li上级的class为.side,假如之前写过.side>li{ background-color:red; }的样式,点击虽然可以为li加上class,但是
.active{ background-color:black; }的样式不能体现,这时候这样写就行了.side>.active{ background-color:black; },因为子元素选择器的权重比较高,会覆盖其他单独class的样式
/*背景图片充满屏幕的时候可以这样避免图片大小的因素*/
<div style="position: absolute; width: 100%; height: 100%; z-index: -1">
<img id="bgcolor" style="position: fixed;" src="~/Images/icon_login02.jpg" width="100%" />
</div>
background: linear-gradient(#24a8e6, #44a9dc, #6bc5ec);/*渐变色。注意是background,不是background-color*/
::-webkit-scrollbar{width:0px;} /*隐藏侧边导航的滚动条,只支持webkit内核的浏览器*/
.before() 是在某个元素前创建元素,而.append()是在元素内创建,.remove()是移除元素
限制高度并显示滚动条
$("#ChaKanFrm")[0].style.height = document.documentElement.clientHeight - $("#Content")[0].clientHeight - 105 + "px";})
<div class="portlet-body form" id="ChaKanFrm" style="overflow:auto">
字符拼接 ,id是变量
$("input[name='select'][value='" + id + "'").prop("checked", false);
//正则表达式 将 \" 转化为 \'
var g = b.replace(/\\"/g, '\'');
if (json[0]["SBDID"].constructor.name == "Array") { // 这句话是判断是否为数组
json[0]["SBDID"] = json[0]["SBDID"].join(','); // join(','):是把数组转化为以逗号为分割的字符串。而split(',')是反过来:字符串--数组
}
"[{"UPDID":"xxxx","SBDID":["xxxx","xxxx","xxxx"]}]"
转化为:
"[{"UPDID":"xxxx","SBDID":"xxxx,xxxx,xxxx"}]"
JSON.stringify( )是将对象转化为字符串
JSON.parse( )是将字符串转化为数组,也可以用eval( ),eval( )能转化一些奇怪的字符串,兼容性更好,但是也有弊端。
这里有详细说明:http://blog.csdn.net/qq_35607510/article/details/55188824
百分比 和 px 之间怎么换算?
height: calc(100% - 10px);
setTimeout 实现循环执行的效果,主要目的是为了提前执行函数(正常情况下setInterval函数会延迟执行)
function GoGeo(){
alert(111);
}
function timer(){
GoGeo();
setTimeout("timer()",15000);
}
两个按钮,只有一个有效另一个禁用:
<input type="button" onclick="start()" id="start" name="start" value="开始记录" />
<input disabled="true" type="button" id="end" onclick="end()" name="end" value="结束记录" />
$("#start").click(function () {
$("#end").removeAttr("disabled");
$("#start").attr("disabled", true);
});
$("#end").click(function () {
$("#start").removeAttr("disabled");
$("#end").attr("disabled", true);
});
table的某个td里的文字溢出显示省略号:
table {
width: 100%;
table-layout: fixed; /* 必须要有不然无效 */
}
td:nth-child(3) {
width: 100%;
word-break: keep-all; /* 不换行 */
white-space: nowrap; /* 不换行 */
overflow: hidden; /* 内容超出宽度时隐藏超出部分的内容 */
text-overflow: ellipsis; /* 当对象内文本溢出时显示省略标记(...),和overflow: hidden;一起使用*/
}
常用的返回上一页方法:
window.location.href = "/XXX/XXX";
window.location.href = document.referrer;
history.back(-1);
window.history.back();
history.go(-1);
侧边栏点击滑出:
$(".btn1").click(function(){
$("#box").animate({width:"300px"});
});
回到顶部:
$(window).scroll(function () {
var scrollt = document.documentElement.scrollTop + document.body.scrollTop;
if ( scrollt > 700 ){
$(".to-top").fadeIn(500);
} else {
$(".to-top").fadeOut(500);
}
});
$(".to-top").click(function(){
$("html,body").animate({scrollTop: 0}, 1000);
});
防止用户选中文字:
onselectstart:return false;
-webkit-user-select:none;
阴影:
div{box-shadow: 10px 10px 5px #888888;}
背景渐变色:
background: -webkit-gradient(linear, 0% 0%, 0% 100%, from(white), to(#cdcdcd));
悬浮放大:
.newSongBody div img,.singerBody div img{
transition: transform 0.7s ;
}
.newSongBody div:hover img,.singerBody div:hover img {
transform: scale(1.08,1.08);
}
超出div的部分省略号:
.resourceDiv{
width:80px;
height:80px;
overflow:hidden;
white-space:nowrap;
text-overflow:ellipsis;
display:block;
}
table的td长度:
<colgroup>
<col width="356px"/>
<col width="300px"/>
<col width="100px"/>
<col width="200px"/>
</colgroup>
刷新页面的a标签:
<a href="javascript:location.reload();"></a>
在写侧边栏点击变色的时候可以选择为li的点击事件加上addClass('active')和removeClass('active'),但是在样式表里你不能直接写.active的样式
注意看看有没有之前有没有写过li的样式,比如你点击的这个li上级的class为.side,假如之前写过.side>li{ background-color:red; }的样式,点击虽然可以为li加上class,但是
.active{ background-color:black; }的样式不能体现,这时候这样写就行了.side>.active{ background-color:black; },因为子元素选择器的权重比较高,会覆盖其他单独class的样式
/*背景图片充满屏幕的时候可以这样避免图片大小的因素*/
<div style="position: absolute; width: 100%; height: 100%; z-index: -1">
<img id="bgcolor" style="position: fixed;" src="~/Images/icon_login02.jpg" width="100%" />
</div>
//enter键代替按钮点击
document.onkeydown = function (event) {
var e = event || window.event || arguments.callee.caller.arguments[0];
if (e && e.keyCode == 13) { // enter 键
Login();
}
}
background: linear-gradient(#24a8e6, #44a9dc, #6bc5ec);/*渐变色。注意是background,不是background-color*/
::-webkit-scrollbar{width:0px;} /*隐藏侧边导航的滚动条,只支持webkit内核的浏览器*/
.before() 是在某个元素前创建元素,而.append()是在元素内创建,.remove()是移除元素
相关文章推荐
- MySQL 日常问题整理汇总!
- 前端插件日常问题 整理
- 从今天起,开始写bolg!整理日常中的疑难问题,欢迎关注
- python线程问题汇总(日常整理)
- 切图日常问题整理
- 整理下日常小问题解决的url
- 手机"用户界面和多媒体"版面有价值问题整理[j2medev.com][0406更新]
- [cssTopic]浏览器兼容性问题整理 css问题集 ie6常见问题【转】
- iOS开发与OpenGL ES相关问题整理(2)- 绘制图片上下颠倒
- 深度学习中大数据整理问题
- 关于android的零碎问题的整理
- vss6.0问题解决资料整理
- 常见问题及解决办法 整理之3(字符串相关操作)
- 最近的工作中遇到的问题整理(2012年6月13日星期三)
- 用NetBeans开发J2ME应用时,解决注释、整理导入快捷键失效问题
- Putty自动断开问题解决--待整理
- 自问问题列表以及网络答案整理
- Android Studio0.5.5 一些常见的问题分析与整理
- LoadRunner常见问题整理
- VMware Workstation 虚拟机问题整理