jQuery

语法

基础语法: $(selector).action()

  • 美元符号定义 jQuery
  • 选择符(selector)"查询"和"查找" HTML 元素
  • jQuery 的 action() 执行对元素的操作
    实例:
$(this).hide() - 隐藏当前元素

$("p").hide() - 隐藏所有 <p> 元素

$("p.test").hide() - 隐藏所有 class="test" 的 <p> 元素

$("#test").hide() - 隐藏所有 id="test" 的元素

jQuery 入口函数与 JavaScript入口函数的区别:

  • jQuery 的入口函数是在 html 所有标签(DOM)都加载之后,就会去执行。
$(function(){
    // 执行代码
})
或者
$(document).ready(function(){
//do something
})
或者
$().ready(function(){
//do something
})
  • JavaScript 的 window.onload 事件是等到所有内容,包括外部图片之类的文件加载完后,才会执行。
window.onload = function () {
    // 执行代码
}

jQuery 选择器

元素选择器

在页面中选取所有p元素:

$("p")

id 选择器

通过 id 选取元素语法如下:

$("#test")

class 选择器

通过指定的 class 查找元素。语法如下:

$(".test")

更多实例

jQuery 事件

点击事件:

$("p").click();

入口事件

$(document).ready()

双击事件:

$("p").dblclick(function(){
  $(this).hide();
});

鼠标指针穿过事件:

$("#p1").mouseenter(function(){
    alert('您的鼠标移到了 id="p1" 的元素上!');
});

鼠标指针离开事件:

$("#p1").mouseleave(function(){
    alert("再见,您的鼠标离开了该段落。");
});

鼠标指针移动到元素上方,并按下鼠标按键时

$("#p1").mousedown(function(){
    alert("鼠标在该段落上按下!");
});

当在元素上松开鼠标按钮时,会发生 mouseup 事件

$("#p1").mouseup(function(){
    alert("鼠标在段落上松开。");
});

hover()模拟光标悬停事件。

当鼠标移动到元素上时,会触发指定的第一个函数(mouseenter);当鼠标移出这个元素时,会触发指定的第二个函数(mouseleave)。

$("#p1").hover(
    function(){
        alert("你进入了 p1!");
    },
    function(){
        alert("拜拜! 现在你离开了 p1!");
    }
);

focus()元素获得焦点事件。

当通过鼠标点击选中元素或通过 tab 键定位到元素时,该元素就会获得焦点。

focus() 方法触发 focus 事件,或规定当发生 focus 事件时运行的函数:

$("input").focus(function(){
  $(this).css("background-color","#cccccc");
});

隐藏和显示

语法

$(selector).hide(speed,callback);

$(selector).show(speed,callback);

$(document).ready(function(){
  $(".hidebtn").click(function(){
    $("div").hide(1000,"linear",function(){
      alert("Hide() 方法已完成!");
    });
  });
});
第二个参数是一个字符串,表示过渡使用哪种缓动函数。(jQuery自身提供"linear" 和 "swing",其他可以使用相关的插件)。

jQuery toggle()

显示被隐藏的元素,并隐藏已显示的元素:
$("button").click(function(){
  $("p").toggle();
});

获取内容和属性

  • text() - 设置或返回所选元素的文本内容

$("#btn1").click(function(){
  alert("Text: " + $("#test").text());
});
  • html() - 设置或返回所选元素的内容(包括 HTML 标记)

$("#btn2").click(function(){
  alert("HTML: " + $("#test").html());
});
  • val() - 设置或返回表单字段的值

$("#btn1").click(function(){
  alert("值为: " + $("#test").val());
});
  • 获取属性 - attr()

$("button").click(function(){
  alert($("#runoob").attr("href"));
});

添加元素

append() - 在被选元素的结尾插入内容

$("p").append("追加文本");

prepend() - 在被选元素的开头插入内容

$("p").prepend("在开头追加文本");

after() - 在被选元素之后插入内容

before() - 在被选元素之前插入内容

$("img").after("在后面添加文本");
 
$("img").before("在前面添加文本");

jQuery - 删除元素

remove() - 删除被选元素(及其子元素)

$("#div1").remove();

empty() - 从被选元素中删除子元素

$("#div1").empty();

jQuery 操作 CSS

  • addClass() - 向被选元素添加一个或多个类
  • removeClass() - 从被选元素删除一个或多个类
  • toggleClass() - 对被选元素进行添加/删除类的切换操作
  • css() - 设置或返回样式属性

设置 CSS 属性

css("propertyname","value");

设置多个 CSS 属性

css({"propertyname":"value","propertyname":"value",...});

基本写法

页面加载完成有两种事件
  • 一是ready,表示文档结构已经加载完成(不包含图片等非文字媒体文件)
  • 二是onload,指示页面包含图片等文件在内的所有元素都加载完成。

用jQ的人很多人都是这么开始写脚本的:

$(function(){
// do something
});

其实这个就是jq ready()的简写,他等价于:

$(document).ready(function(){
//do something
})

或者下面这个方法,jQuer的默认参数是:“document”;

$().ready(function(){
//do something
})
事件绑定的写法

这里按钮的id为button

  • 绑定方法1
  $(function(){
        //在jq这样的双重绑定事件不会重叠
        $("#button").click(function(){
            alert(1)
        })
        $("#button").click(function(){
            alert(2)
        })
    })
  • 绑定方法2
//绑定事件 方法2 bind 可以给一个对象写多个触发条件,执行一个函数
    $("#button").bind("click mouseenter",function(){
        alert(1)
    })
    //解除绑定
    $("#button").unbind("click");
提示:这里把bind换成bind也可以
  • 所以如果你要添加事件的元素是后面动态加载进来的,建议直接用on方法绑定事件,或者待元素加载进来后再次调用一下bind函数绑定事件;
  • 如果你能确保js执行之前你要绑定事件的元素已经加载了,建议用bind方法,个人认为bind方法效率应该比on方法效率高(没亲测过);

事件冒泡

当div1包含div2包含div3时,给三个div分别绑定点击事件,点击div3时,三个div的点击事件都会执行

阻止事件冒泡
$('#div3').bind('click', function (event) {  //event:事件对象
    event.stopPropagation(); //停止事件冒泡
});
posted @ 2019-08-05 22:27  彼时岸边  阅读(125)  评论(0编辑  收藏  举报