一、jQuery事件绑定

                <div class='c1'>
<div>
<div class='title'>菜单一</div>
<div class='content'>内容 一</div>
</div>
<div>
<div class='title'>菜单一</div>
<div class='content'>内容 一</div>
</div>
<div>
<div class='title'>菜单一</div>
<div class='content'>内容 一</div>
</div>
<div>
<div class='title'>菜单一</div>
<div class='content'>内容 一</div>
</div>
</div>
jQuery事件绑定:
1.
$('.title').click(function(){
var v = $(this).text();
console.log(v); })
2.
$('.title').bind('click',function(){
var v = $(this).text();
console.log(v);
})
3.
$('.c1').delegate('.title','click',function(){
var v = $(this).text();
console.log(v);
}) 4.
$('.c1').on('click','.title', function () {
var v = $(this).text();
console.log(v);
});

委托绑定

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<input id="txt" type="text"/>
<input id="btn" type="button" value="提交"/>
<ul>
<li>111</li>
</ul>
<script src="jquery-1.12.4.js"></script>
<script>
$('#btn').click(function () {
var v = $('#txt').val();
// var v = $(this).siblings().val();
var temp = document.createElement('li');
temp.innerHTML=v;
$('ul').append(temp);
})
// 绑定委托
$('ul').delegate('li','click',function () {
var v = $(this).text();
v = v+ '+1';
$(this).text(v);
})
</script>
</body>
</html>

页面框架加载完成:

$(function () {
  ...
})
使用:希望查看页面立即执行的操作

阻止默认事件的发生:

$('#bd').click(function () {
  var v = $(this).text();
  alert(v);
  return false;
})

二、表单验证

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
<form id="f1" action="http://www.baidu.com" method="GET">
<p><input type="text" name="username" require="true" /></p>
<p><input type="password" name="password" require="true" min-len="6" max-len="18" /></p>
<p><input type="text" name="phone" require="true" phone="true" /></p>
<input type="submit" value="提交" />
</form> <script src="jquery-1.12.4.js"></script>
<script>
$(function () {
checkValidate();
});
function checkValidate() { $('#f1').find(':submit').click(function () {
$('#f1').find('span').remove();
var flag = true;
$('#f1').find(':text,:password').each(function () {
// $(this)代指每一个input标签
// 每一次执行都是一个标签
// 如果有某个标签的某一项不满足,调到下一个标签
var value = $(this).val();//获取标签里面的值 var require = $(this).attr('require');//获取属性,看是否是必填
if(require){
if(value.length == 0){
var n = $(this).attr('name');
var errorTag = document.createElement('span');
errorTag.innerHTML = n + '输入不能为空';
$(this).after(errorTag); flag = false;
// return true; // continue
return false; // break; }
} var minLen = $(this).attr('min-len');
if(minLen){
var valueLen = value.length;
var minLen = parseInt(minLen);
if(valueLen < minLen){
var n = $(this).attr('name');
var errorTag = document.createElement('span');
errorTag.innerHTML = n + '太短了';
$(this).after(errorTag); flag = false;
// return true; // continue
return false; // break;
}
} var phone = $(this).attr('phone');
if(phone){
// value: asdfasdf
var re = /^\d+$/;//正则匹配^行首$行尾
if(!re.test(value)){//查看正则是否匹配
var n = $(this).attr('name');
var errorTag = document.createElement('span');
errorTag.innerHTML = n + '格式错误';
$(this).after(errorTag); flag = false;
// return true; // continue
return false; // break;
}
} });
return flag;
})
}
</script>
</body>
</html>

三、jQuery扩展

扩展的两种方式

  • .extend({})
  • .fn.extend({})
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<ul>
<li>1</li>
<li>1</li>
<li>1</li>
<li>1</li>
</ul>
<script src="jquery-1.12.4.js"></script>
<script>
$.extend({'alex':function () {
console.log('sb')
}});
$.alex(); $.fn.extend({'wusir':function () {
console.log('wsb',this)
}});
$('li').wusir();
</script>
</body>
</html>

自执行函数

                 (function(jq){
function common(){ } jq.extend({
xx: function(){
common();
} }) })($);

javascript高级

   - 作用域相关
1.
function func(){
if(1==1){
var v= 123;
}
console.log(v);
}
func()
A. 报错(Java,C#) B. 123(对) C.undefined
=》 JavaScript/python是以函数为作用域,非括号为作用域
=》 括号为作用域
2.
xo = 'root1';
function func(){
var xo = 'root2';
function inner(){
console.log(xo);
}
inner();
}
func();
作用域链
// root2
3. xo = 'root1';
function func(){
var xo = 'root2';
function inner(){
console.log(xo);
}
return inner;
}
result = func();
result();
// 作用域链在函数调用之前已经创建,当寻找变量时,根据最开始创建的作用域查找
// root2 4.
xo = 'root1';
function func(){
var xo = 'root2';
function inner(){
console.log(xo);
}
xo = 'root3'
return inner;
} result = func();
result();
       //root3 5.
function func(){
console.log(xo);//undefined
var xo = '123';
console.log(xo);//123
}
func()
// 提前声明,JS
1. 预编译:
var xo;
2. 执行
预编译
  

6.
function func(num){
  console.log(num); // function
  num = 18;
  console.log(num); // 18


  function num(){
  }
  console.log(num); // 18
}
func(666);

a. 预编译 AO
先编译参数:
  AO.num = undefined
  AO.num = 666
再编译变量:
  如果AO中有num,则不做任何操作
  否则 AO.num = undefined
最后编译函数:
  AO.num = function num(){
}


b. 执行

7.

function func(num){
  console.log(num); // function
  function num(){
  }
  console.log(num); // function
  num = 18;

  console.log(num); // 18
}
func(666);

先编译参数:
  AO.num = undefined
  AO.num = 666
再编译变量:
  如果AO中有num,则不做任何操作
  否则 AO.num = undefined
最后编译函数:
  AO.num = function num(){
}


8.
function func(){
  console.log(xo);
  var xo = 123;
}
func()

编译:
参数:
  AO
变量:
  AO.xo = undefined
执行:

函数和面向对象相关

      1.
function func(arg){
console.log(this,arg);
}
func(18);
// func.call(window,20);
// func.apply(window,[30]); (function(arg){
console.log(this,arg);
})(123) 在函数被执行时,默认this是代指window对象 function func(){
window.nn = 'root';
//nn = 'root';
this.nn = 'root';
}
func()
console.log(nn); =====>
a. 在函数内部,默认都有this变量。默认情况下,执行函数时 this=window
b. 使用 函数名.call 或者 函数名.apply 可以对函数中的this主动设置值

2. 在JS中没有字典类型

 var dict = {
name: 'alex',
age: 18
}
等价于
var dict = new Object(); # 表示创建空字典
dict.name = 'alex';
dict.age = 18;

当做对象调用的时候,var obj1 = new func('root');

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<script>
function func(name) {
this.Name = name
}
var obj1 = new func('root');
console.log(obj1.Name);
var obj2 = new func('root1');
console.log(obj2.Name)
</script>
</body>
</html>

当做函数时,this是window,当做类时,this是对象

面试题

 谁调用函数,this就是谁。 函数()执行时候默认window.函数()
每一个函数里都有一个this
Name = '666';
var dict = {
Name: 'root',
Age: 18,
Func: function(){
// this等于dict
console.log(this.Name); // root function inner(){
console.log(this.Name); //
}
inner();
}
} dict.Func(); ============================
谁调用函数,this就是谁。 函数()执行时候默认window.函数()
每一个函数里都有一个this
变量查找顺序,作用域链
Name = '666';
var dict = {
Name: 'root',
Age: 18,
Func: function(){
// this等于dict
console.log(this.Name); // root
// that 等于dict
var that = this; function inner(){
// this=window
console.log(that.Name); // root
}
inner();
}
} dict.Func();

3. 原型

function Foo(name){
  this.Name = name;
}
// 原型
Foo.prototype = {
  Func: function(){
  console.log(this.Name);
}
}

obj1 = new Foo(1)
obj2 = new Foo(2)
obj3 = new Foo(3)

javascript+jQuery补充的更多相关文章

  1. python 全栈开发,Day57(响应式页面-@media介绍,jQuery补充,移动端单位介绍,Bootstrap学习)

    昨日内容回顾 ajax //get post 两种方式 做 请求 get 主要是获取数据 post 提交数据 同一个路由地址 既可以是get请求也可以是post请求 一个路由对应一个函数 get请求 ...

  2. Jquery补充及插件

    此篇为jQuery补充的一些知识点,详细资料请看另一篇博客,地址:https://www.cnblogs.com/chenyanbin/p/10454503.html 一.jQuery中提供的两个函数 ...

  3. dom&JavaScript&Jquery

    目录 dom&JavaScript&Jquery 建节点 添加节点 删除节点: 替换节点: 属性节点 获取值操作 class的操作 指定CSS操作 操作节点 获取input用户输入 操 ...

  4. JavaScript jQuery 中定义数组与操作及jquery数组操作

    首先给大家介绍javascript jquery中定义数组与操作的相关知识,具体内容如下所示: 1.认识数组 数组就是某类数据的集合,数据类型可以是整型.字符串.甚至是对象Javascript不支持多 ...

  5. jQuery操作Dom、jQuery事件机制、jQuery补充部分

    jQuery操作Dom: 修改属性: //使用attr()方法 //attr(name, value) //name:要修改的属性的属性名 //value:对应的值 //attr方法,如果当前标签有要 ...

  6. 在线运行Javascript,Jquery,HTML,CSS代码

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" http://www.w3.org/TR/xht ...

  7. javascript --- jQuery --- Deferred对象

    javascript --- jQuery --- Deferred对象 javascript的函数式编程是多么引人入胜,jQuery使代码尽可能的精简,intelligent! defer - 必应 ...

  8. javascript/jquery读取和修改HTTP headers

    javascript/jquery读取和修改HTTP headers jquery修改HTTP headers jQuery Ajax可以通过headers或beforeSend修改request的H ...

  9. 大量Javascript/JQuery学习教程电子书合集

    [推荐分享]大量Javascript/JQuery学习教程电子书合集,送给有需要的人   不收藏是你的错^_^. 经证实,均可免费下载. 资源名称 资源大小   15天学会jQuery(完整版).pd ...

随机推荐

  1. JVM中ClassLoader的学习

    JVM中class loaderの学习 一..class文件和jvm的关系 类的加载 所有的编译生成的.class文件都会被直接加载到JVM里面来吗(并不 首先我们明确一个概念,.class文件加载到 ...

  2. 你确定你会写 Dockerfile 吗?

    如今 GitHub 仓库中已经包含了成千上万的 Dockerfile,但并不是所有的 Dockerfile 都是高效的.本文将从五个方面来介绍 Dockerfile 的最佳实践,以此来帮助大家编写更优 ...

  3. Qt定制控件列表

    目录 炫酷进度条 提示框 小时钟 高仿excel表格 多级表头表格 多级表头树控件 多维度折线图 表格控件-蚂蚁线 日历控件 饼图 窗体靠边自动隐藏 下拉框内容定制 模仿QQ上传头像 菜单定制 属性表 ...

  4. POJ 3621:Sightseeing Cows(最优比率环)

    http://poj.org/problem?id=3621 题意:有n个点m条有向边,每个点有一个点权val[i],边有边权w(i, j).找一个环使得Σ(val) / Σ(w)最大,并输出. 思路 ...

  5. ORACLE常用函数的使用方法

    ORACLE常用函数的使用方法 1. 字符串函数 (1) length(); 获取字符长度SELECT LENGTH('中国') FROM PLATFORM_METAINFO_TABLES WHERE ...

  6. 搭建Spring Initializr服务器

    前言 按照网上很多教程,出错特别多.首先是GitHub和maven仓库的网络环境比较差,踩了很多坑:其次是SpringInitializr更新迭代几个版本,0.7.0我也没能弄成功.索性就用了旧版本0 ...

  7. 聊聊C语言的预编译指令include

    "include"相信大家不会陌生,在我们写代码时,开头总会来一句"include XXX".include是干嘛用的,很多教材都提到了,因此这里不会再详细解释 ...

  8. [01] HEVD 双机调试环境搭建

    [01] HEVD 双机调试环境搭建 span::selection, .CodeMirror-line > span > span::selection { background: #d ...

  9. KdTree && Octree 原理学习对比以及可视化分析--"索引树"

    1. Kdtree 原理 k-d树(k-dimensional树的简称),是一种分割k维数据空间的数据结构.主要应用于多维空间关键数据的搜索(如:范围搜索和最近邻搜索): 索引结构中相似性查询有两种基 ...

  10. WinForm控件之【ComboBox】

    基本介绍 下拉文本框应用较为广泛,在winfrom控件当中使用设置也是相对的简单,主要用于存在多种选择的单选操作场景. 常设置属性.事件 DataSource:绑定加载项的数据源,设置属性Displa ...