前端开发的一些小记录点

修改了cssjs文件,可以加一个时间戳作为版本号,以防止缓存。
<link rel="stylesheet" type="text/css" href='css/style.css?version=20181128' />
如果是动态设置样式,最好给盒子加高度,不要等图片加载出来之后,获取对应图片的高度再计算,因为可能图片加载很慢,此时,外层盒子高度为0,没法正确的计算。
.pic-container{ 
  height: 100px;
}
title 标签放到定义字符集的 meta 标签下面
<meta charset="UTF-8">
<title>learn js</title>
什么是事件冒泡

气泡从水底开始往上升,由深到浅,升到最上面。在上升的过程中,气泡会经过不同深度层次的水。相对应地:这个气泡就相当于我们这里的事件,而水则相当于我们的整个dom树;事件从dom 树的底层 层层往上传递,直至传递到dom的根节点。

如何阻止事件冒泡
// 1、不兼容 ie
event.stopPropagation();

// 2、兼容 ie
if(event.stopPropagation){
      event.stopPropagation();
}else{
      event.cancelBubble = true;
}
如何取消默认行为
// 不兼容 ie
event.preventDefault(); 

// 兼容 ie
if(event.preventDefault){
      event.preventDefault();  
}else{
      event.returnValue=false;
}
页面之间实现跳转的几种方式
// 1、a 链接跳转
 <a href="b.html">b</a>

// 2、
window.location.href  = "b.html";

// 3、
self.location = "b.html";

// 4、
top.location = "b.html";

// 5、返回上一页
window.history.back(-1);
页面之间传值的几种方式

(1)、url 传值

window.location.href = "https://www.google.com/search?q=hello&oq=hello"

// 如何把后面的值转化为 JSON
function parseURL(url){
    var url = url.split("?")[1];
    var para = url.split("&");
    var len = para.length;
    var res = {};
    var arr = [];
    for(var i=0;i<len;i++){
        arr = para[i].split("=");
        res[arr[0]] = arr[1];
    }
    return res;
}

(2)、cookie 传参

function setCookie(cname,cvalue,exdays){
    var d = new Date();
    d.setTime(d.getTime() + (exdays*24*60*60*1000));
    var expires = "expires=" + d.toUTCString();
    document.cookie = cname + "=" + cvalue + "; " + expires;
}

function getCookie(cname){
    var name = cname + "=";
    var ca = document.cookie.split(";");
    for(var i=0;i<ca.length;i++){
        var c = ca[i];
        while(c.charAt(0)==' '){
            c = c.substring(1); 
        }
        if(c.indexof(cname) == 0){
            return c.substring(name.length,c.length);
        }
    }
    return "";
}

(3)、H5Web Storage中的localStorage对象

localStorage.setItem("age","24");

localStorage.getItem("age");
图片标签尽量加 alt 属性
<img src="https://www.baidu.com" alt="到百度首页" title="到百度首页">
<br> 标签最好用在 p 段落内部的文字换行,其他地方不要用
<p>
  我是一个段落,<br>
  我是一个段落。
</p>
几种常见的灰色
媒体查询
// 在最大宽度为1366像素的屏幕上应用的样式
@media screen and (max-width: 1366px) {
    .top{
        height: 40px;
        line-height: 40px;
        font-size: 14px;
    }
}

// 在最小宽度为1366像素,最大为1600像素的屏幕上应用的样式
@media screen and (min-width: 1366px)  and (max-width: 1600px){
    .top{
        height: 40px;
        line-height: 40px;
        font-size: 14px;
    }
}
jquery 各版本 CDN
// jquery-2.1.1

 

注:jquery-2.0以上版本不再支持IE 6/7/8)百度引用地址 (推荐目前最稳定的,不会出现延时打不开情况)


百度压缩版引用地址:
<script src="http://libs.baidu.com/jquery/2.1.1/jquery.min.js"></script>
微软压缩版引用地址:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-2.1.1.min.js"></script>
官网jquery压缩版引用地址:
<script src="http://code.jquery.com/jquery-2.1.1.min.js"></script>


// jquery-2.0.0


百度压缩版引用地址:
<script src="http://libs.baidu.com/jquery/2.0.0/jquery.min.js"></script>
微软压缩版引用地址:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-2.0.0.min.js"></script>
官网jquery压缩版引用地址:
<script src="http://code.jquery.com/jquery-2.0.0.min.js"></script>

 

// jquery-1.11.1

 

百度压缩版引用地址:
<script src="http://libs.baidu.com/jquery/1.11.1/jquery.min.js"></script>
微软压缩版引用地址:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.11.1.min.js"></script>
官网jquery压缩版引用地址:
<script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>

 

// jquery-1.10.2

百度压缩版引用地址:
<script src="http://libs.baidu.com/jquery/1.10.2/jquery.min.js"></script>
微软压缩版引用地址:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.10.2.min.js"></script>
官网jquery压缩版引用地址:
<script src="http://code.jquery.com/jquery-1.10.2.min.js"></script>


// jquery-1.9.1

百度压缩版引用地址:
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js"></script>
微软压缩版引用地址:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.9.1.min.js"></script>
官网jquery压缩版引用地址:
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>


// jquery-1.8.3


百度压缩版引用地址:
<script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>
微软压缩版引用地址:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.8.3.min.js"></script>
官网jquery压缩版引用地址:
<script src="http://code.jquery.com/jquery-1.8.3.min.js"></script>

 

// jquery-1.7.2

百度压缩版引用地址:
<script src="http://libs.baidu.com/jquery/1.7.2/jquery.min.js"></script>
微软压缩版引用地址:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.7.2.min.js"></script>
官网jquery压缩版引用地址:
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>

 


// jquery-1.6.4

百度压缩版引用地址:
<script src="http://libs.baidu.com/jquery/1.6.4/jquery.min.js"></script>
微软压缩版引用地址:
<script src="http://ajax.aspnetcdn.com/ajax/jquery/jquery-1.6.4.min.js"></script>
官网jquery压缩版引用地址:
<script src="http://code.jquery.com/jquery-1.6.4.min.js"></script>
$.inArray

返回数组中指定元素的索引值,没有找到返回 -1

var arr = [1, 2, 3, 8 , 9, 10];

var index1 = $.inArray(8, arr);
console.log(index1);   // 3

var index2 = $.inArray('8', arr);
console.log(index2);   // -1
delete 操作符

用于删除对象的某个属性

var obj = {
    username: 'tom',
    age: 24,
    likes: 'sing'
}
delete obj.age;
console.log(obj);

// {
//     username: 'tom',
//     likes: 'sing'
// }
使用 debugger 调试 js
setTimeout(function(){
    console.log('hello');
},0)
var num = 0;
for (var i = 0; i < 5; i++) {
    debugger;
    num += i;
}
console.log(i);
清除浏览器一系列记录及缓存

ctrl + shift + delete

监听 input 内容改变事件

1、onchange
在内容发生改变,并且失去焦点时触发

$("#username").on("change", function () {
    console.log($(this).val());
})

ie9 以下不支持。
2、oninput
内容发生改变时触发,不需要失去焦点。js 动态改变 value 值不会触发该事件。

$("#username").on("input", function () {
    console.log($(this).val());
})

ie9 以下不支持。

$(选择器).click(function(){}) 和 $(document).on('click', 选择器, function () {})的区别

主要区别:
$(选择器).click(function(){}) 只针对页面已经存在的元素。
举个例子:

// 这种情况下,最后一个创建的 li 元素是无法绑定点击事件的。
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    $("ul li").click(function () {
        console.log($(this).text());
    })
    $("ul").append("<li>4</li>");
</script>

// 这种情况下,最后一个创建的 li 元素也拥有点击事件。
<ul>
    <li>1</li>
    <li>2</li>
    <li>3</li>
</ul>
<script>
    $("body").on("click", "ul > li", function () {
        console.log($(this).text());
    })
    $("ul").append("<li>4</li>");
</script>

window.location.pathname 和 window.location.search

访问 http://127.0.0.1:8095/abc/b.html?user=tom&age=23 这个地址的话

console.log(window.location.pathname);   // /abc/b.html
console.log(window.location.search);   // ?user=tom&age=23
console.log(window.location.href);   // http://127.0.0.1:8095/abc/b.html?user=tom&age=23

jq 获取父页面

如果用 iframe 引入了一个子页面,想在子页面中操作父页面的话,可以使用 parent.document

$(parent.document).find('h2').css('background-color', 'yellowgreen');
$(window.parent.document).find('h2').css('background-color', 'yellowgreen');
$('h2', parent.document).css('background-color', 'yellowgreen');

$.ajax 的回调函数执行顺序

$.ajax({
    url: "./data.php",
    success: function () {
        console.log("success");
    },
    beforeSend: function () {
        console.log("beforeSend");
    },
    complete: function () {
        console.log("complete");
    },
    error: function () {
        console.log("error");
    }
})
// beforeSend
// success
// complete

js 删除数组中某个元素

splice

var arr = [0, 1, 2, 3, 4];
arr.splice(2, 1);
for (var i = 0; i < arr.length; i ++) {
    console.log(i + ' ---- ' + arr[i]);
}
// 0 ---- 0
// 1 ---- 1
// 2 ---- 3
// 3 ---- 4

delete

var arr = [0, 1, 2, 3, 4];
delete arr[2]
for (var i = 0; i < arr.length; i ++) {
    console.log(i + ' ---- ' + arr[i]);
}
// 0 ---- 0
// 1 ---- 1
// 2 ---- undefined
// 3 ---- 3
// 4 ---- 4

top parent self

  1. parent常用在iframe和frame中的子页面访问父页面中的对象

  2. top :一个页面可能会有很多层,top是指最顶层的框架

  3. self :是指当前窗口

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 205,132评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,802评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,566评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,858评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,867评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,695评论 1 282
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,064评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,705评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,915评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,677评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,796评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,432评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,041评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,992评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,223评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,185评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,535评论 2 343