jQuery选择器_Dom操作_样式_事件处理

库和框架的区别?

  • 库:对开发者来说就是操作方便,简化流程,提高效率,代码简洁。
  • 框架 : 框架就是一个大的整体结构,包含多个库的集合,根据框架提供的类或函数,即可实现全部功能,这就是框架。

jquery 能做什么?

jQuery 是一个高效、精简并且功能丰富的 JavaScript 工具库。
常见实用方法
创建

var obj = $('<div class="test"><p><span>Done</span></p></div>');

取值和赋值

$('.box').html(); // 取值
$('#username').val(); // 取值
$('.box').html('给box赋值'); // 赋值
$('#username').val('给ipnput赋值'); // 赋值

事件操作

$('.box').on('click', function(){
    console.log( $(this).html() );
})

动画效果

$(".btn").click(function(){
    $(".box").animate({
        width: "70%",
        opacity: 0.4,
        marginLeft: "60px",
        fontSize: "30px"
    }, 1500 );
});

AJAX

$.ajax({
    type: "POST",
    url: "some.php",
    data: { name: "John", location: "Boston" }
}).done(function( msg ) {
    alert( "Data Saved: " + msg );
});

添加样式和删除样式

$(".box").addClass("active");
$(".box").removeClass("active");

添加元素和删除元素

$( ".box" ).append( "<p>Test</p>" ); // 添加元素
$('.box').empty(); // 清空元素
$('.box').remove(); // 删除被选元素

jquery 对象和 DOM 原生对象有什么区别?如何转化?

  • 区别:
    jQuery对象操作简单,兼容性强。
    DOM原生对象代码复杂,兼容性差。
  • 转化:
    DOM原生对象转化jQuery对象:$(node) ,用 $() 包起来实现
    jQuery对象转化DOM原生对象: $(node)[index],以下标来实现

jquery中如何绑定事件?

// 1
$('#foo').on('click', function() {
  alert('User clicked on "foo."');
});
// 2
$('#foo').bind('click', function() {
  alert('User clicked on "foo."');
});

bind、unbind、delegate、live、on、off都有什么作用?推荐使用哪种?

bind 方法用于直接附加一个事件处理程序到元素上,在.bind()绑定事件的时候,这些元素必须已经存在。
unbind 从元素上删除一个以前附加事件处理程序。
delegate 对于早期版本,它仍然是使用事件代理(委派)最有效的方式

$("table").delegate("td", "click", function() {
  $(this).toggleClass("chosen");
});

等价于下面使用.on()的代码

$("table").on("click", "td", function() {
  $(this).toggleClass("chosen");
});

从jQuery 1.7开始,.delegate()已经被.on()方法取代
live 从jQuery1.7开始, .live() 方法已经过时了。使用.on()附加事件处理程序。 旧版本的jQuery中用户,应优先使用.delegate()来取代.live()

$("a.offsite").live("click", function(){ alert("Goodbye!"); });                // jQuery 1.3+
$(document).delegate("a.offsite", "click", function(){ alert("Goodbye!"); });  // jQuery 1.4.3+
$(document).on("click", "a.offsite", function(){ alert("Goodbye!"); });        // jQuery 1.7+

on 在选定的元素上绑定一个或多个事件处理函数,在jQuery 1.7中,.on()方法提供绑定事件处理的所有功能。

$('.box').on('click', function(){
    console.log( $(this).html() );
});

$("form").on("submit", function(event) {
  event.preventDefault();
});

off 移除一个事件处理函数。

$("form").off(".validator");
$("form").on("click.validator", "button", validate);

在jquery-1.7之后建议使用 on() 来 绑定事件

使用on绑定事件使用事件代理的写法?

// 事件委托或者事件代理,想让div 下面所有的span绑定事件,可以把事件绑定到div上
$('div').on('click', 'span', function(e){
    console.log(this);
    console.log(e);
});

jquery 如何展示/隐藏元素?

// 方法1
$('.box').css('display','block');
$('.box').css('display','none');
// 方法2 
$('.box').show();
$('.box').hide();
// 方法3
$('.box').fadeIn();
$('.box').fadeOut();

jquery 动画如何使用?

自定义动画
$(selector).animate(styles,speed,easing,callback)

参数说明
styles 必需。规定产生动画效果的 CSS 样式和值。
speed 可选。规定动画的速度。默认是 normal。可能的值:毫秒 (比如 1500) slow normal fast
easing 可选。规定在不同的动画点中设置动画速度的 easing 函数。内置的 easing 函数: swing linear
callback 可选。animate 函数执行完之后,要执行的函数。

代码事例

$(".box").animate({
        width: "70%",
        opacity: 0.4,
        marginLeft: "60px",
        fontSize: "30px"
    }, 'slow' , 'linear' , function(){
        $(".box").css('color','blue');
    });

如何设置和获取元素内部 HTML 内容?如何设置和获取元素内部文本?

// HTML
var str = $('.box').html();     // 获取
$('.box').html('给box赋值');   // 设置
// 文本
var str = $('.box').text();     // 获取
$('.box').text('给box赋值');   // 设置

如何设置和获取表单用户输入或者选择的内容?

.val([string]) 无参数时,获取表单输入值,有参数时,设置表单的输入值。

$('.ipt').val('1231321'); //设置
$('.ipt').val(); // 获取

如何设置和获取元素属性?

.attr(attributeName, value) 参数vulue可设置元素的属性值
.attr(attributeName) 获取元素特定属性的值

$('.box').attr({'data-img':'./icon.jpg','data-id':'20'}); // 设置
$('.box').attr('data-img'); // 获取 data-img 的值

以下是三个小demo

菜单切换
https://boloog.github.io/demos/jQuery/index-1.html
tabs切换
https://boloog.github.io/demos/jQuery/index-2.html
事件委托
https://boloog.github.io/demos/jQuery/index-3.html

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

推荐阅读更多精彩内容