搜档网
当前位置:搜档网 › JQuery笔记

JQuery笔记

$(window.opener.document.body).children("#lboxTM").append("");

1. jQuery下载地址:https://www.sodocs.net/doc/7016854277.html,/p/jqueryjs/downloads/list
min: 压缩后的jQuery类库,在正式环境上使用
vsdoc: 在Visual Studio中需要引入此版本的jquery类库才能启用智能感知.
release包: 里面有没有压缩的jquery代码, 以及文档和示例程序.

2.jQuery包装集是一个集合, 所以可通过索引器访问其中的某一个元素,如var domobj = $("div")[0];
注意, 通过索引器返回的不再是jQuery包装集, 而是一个Dom对象! jQuery包装集是所有对象的集合。
在jQuery提供了each()函数用于遍历jQuery包装集, 其中的this指针是一个DOM对象

3. Dom转jQuery包装集
var div = document.getElementById("testDiv"); //这是一个DOM
var domToJQueryObject = $(div); //换成jQuery包装集
说明:jQuery包装集拥有丰富的属性和方法, 这些都是jQuery特有的

4.jQuery包装集转Dom对象
$("div").each(function() { alert(this.id); $(this).html("修改内容");} ); //这里的this是DOM元素

5.








//==================================jQuery基础=============================
1.选择器
///===============基础选择

code
用 $("#myDiv") 说明:如果id属性值有特殊字符,就用\\进行转义,如#foo\\.bar
code1
code2 用 $(".red")
code1
code2
用 $("div")
$("div,span,p.myClass") 是将每一个选择器匹配到的元素合并后一起返回

///===============层次选择
选择CSS类为red的元素中的所有
元素 用 $(".red div")
$(".red>li") 选择CSS类为red元素中的直接子节点
  • 对象.
    $("#content+img") 选择id为content元素后面的img对象.
    $("#someDiv~[title]")选择id为someDiv的对象后面所有带有title属性的元素

    ///==============基本过滤器
    $("#tbl tr:first")[0].style.display='none'; //隐藏id为tbl的table的首行,
    说明:尾行用":last",奇数行用":even",偶数行用":odd"。
    $("#tbl tr:eq(2)").each(function() {this.style.background='red';}); //指定特定行
    说明:小于指定行用":lt",大于指定行用":gt",用法同上
    $(":header").css("background", "#EEE"); // 给页面内所有标题H1,H2,H3等加上背景色

    $("input:not(:checked)"); //查找所有未选中的 input 元素

    ///==============内容过滤器
    $("div:contains('china')").each(function() {this.style.background='red';}); //包含"china"的div元素
    $("#tbl td:empty").each(function() { $(this).html("未填写");}); //":empty"所有不包含子元素或者文本的空元素
    $("div:has(p)").addClass("test"); // 给所有包含 p 元素的 div 元素添加一个 text 类
    $("td:parent") //所有含有子元素或者文本的 td 元素

    ///=============可见性过滤器
    $(

    "tr:hidden") //所有不可见的 tr 元素
    $("tr:visible") //查找所有可见的tr元素

    ///=============属性过滤器
    $("div[id]") 查找所有含有 id 属性的 div 元素
    $("input[name='news']").attr("checked", true); 查找所有 name 属性是 news 的 input 元素
    $("input[name!='info']").attr("checked", true); 查找所有 name 属性不是 info 的 input 元素
    $("li[id^='tr']") id属性值是以'tr'字符开始的li元素
    $("li[id$='tr']") id属性值是以'tr'字符结束的li元素
    $("li[id*='tr']") id属性值是包含'tr'字符串的li元素
    复合属性:$("li[id][name$='man']") 含有id属性,并且它的name属性是以 man 结尾的li元素

    ///============子元素过滤器
    $("ul li:nth-child(2)") 每个ul的第2个li元素
    $("ul li:nth-child(odd)") 和 $("ul li:nth-child(even)") 每个ul的奇偶元素
    $("ul li:nth-child(3n)") 3的倍数元素
    注意:nth-child从1开始的,而:eq()是从0算起的!

    $("ul li:first-child") 在每个 ul 中查找第一个 li
    $("ul li:last-child") 在每个 ul 中查找最后一个 li
    $("ul li:only-child") 在 ul 中查找是唯一子元素的 li

    ///=============表单选择器
    $(":input") 所有的input元素(input, textarea, select 和 button)
    $(":text") 所有文本框
    $(":password") 查找所有密码框
    $(":radio") 查找所有单选按钮
    $(":checkbox") 查找所有复选框
    $(":submit") 查找所有提交按钮
    $(":image") 匹配所有图像域
    $(":reset") 查找所有重置按钮
    $(":button") 查找所有按钮
    $(":file") 查找所有文件域

    ///============表单过滤器
    :enabled 所有可用元素
    :disabled 匹配所有不可用元素
    :checked 匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option)
    :selected 匹配所有选中的option元素

    2.创建新的元素
    jQuery内部使用document.createElement创建元素:
    $("

    ").css("border","solid 1px #FF0000").html("动态创建的div").appendTo(testDiv);

    jQuery内部使用innerHTML创建元素:
    $("
    动态创建的div
    ").appendTo(testDiv);


    3.在页面加载完毕后:
    $(document).ready(调用的函数); 可简写为 $(function(){ ... });

    后者支持多个函数
    $(function(){alert("第1个函数");}); $(function(){alert("第2个函数");});
    使用$()将我们的函数包装起来即可. 而且可以在一个页面绑定多个函数, 如果使用传统的window.onload则只能调用一个函数

    4.操作元素属性
    $("img").attr("src"); //返回图像的src属性值
    $("img").attr({ src: "test.jpg", alt: "Test Image" }); //为所有图像设置src和alt属性
    $("img").attr("src","test.jpg"); //为所有图像设置src属性
    $(

    "img").attr("title", function() { return this.src }); //设置图像的title属性为src属性值
    $("img").removeAttr("src"); //将文档中图像的src属性删除

    其他常用属性
    $("p").height(); //获取第一段的高, 宽用 $("p").width();
    $("p").height(20); //把所有段落的高设为 20,宽用$("p").width(20);


    5.修改css样式
    $("p").addClass("selected"); //为匹配的元素加上 'selected' 类
    $("p").removeClass("selected"); //从匹配的元素中删除 'selected' 类
    $("p").toggleClass("selected"); //为匹配的元素切换 'selected' 类

    $("p").css("color"); //取得第一个段落的color样式属性的值
    $("p").css({ color: "#ff0011", background: "blue" }); //将所有段落的字体颜色设为红色并且背景为蓝色
    $("p").css("color","red"); //将所有段落字体设为红色



    应用举例:
    $("#btnAdd").bind("click", function(event) { $("p").addClass("colorRed borderBlue"); });
    $("p").removeClass();

    6.事件和事件对象
    $("#testDiv4").bind("click", showMsg); //多次绑定不会覆盖
    $("#testDiv4").one("click", showMsg); //第一次点击时触发
    $("p").unbind() //把所有段落的所有事件取消绑定
    $("p").unbind( "click" ) //将段落的click事件取消绑定
    $("p").click( function (event, a, b) { ..... } ).trigger("click", ["foo", "bar"]);
    //给一个事件传递参数
    // 一个普通的点击事件时,a和b是undefined类型
    // 如果用下面的语句触发,那么a指向"foo",而b指向"bar"

    给按钮传递参数,举例

    如: $("#abs").bind("click",{myname:"chenda"},function(event) {alert(event.data.myname);});
    又如: $("#abs").bind("click", function(event) { alert($(event.target).attr("src")); });

    说明:event.type得到事件类型如"click", event.target得到事件触发者DOM对象
    event.data得到事件传入的参数, event.result得到上一个事件处理函数返回的值

    事件汇总:
    blur( ),blur(fn),change( ),change(fn),click( ),click(fn),dblclick( ),dblclick(fn),error( ),error(fn),
    focus( ),focus(fn),keydown( ),keydown(fn),keypress( ),keypress(fn),keyup( ),keyup(fn),load(fn),
    mousedown(fn),mouseenter(fn),mouseleave(fn),mousemove(fn),mouseout(fn),mouseover(fn),mouseup(fn),
    resize(fn),scroll(fn),select( ),select(fn),submit( ),submit(fn),unload(fn)

    7.hover(over, out) 当鼠标移动到上面时,会触发指定的第一个函数。当鼠标移出这个元素时,会触发指定的第二个函数。
    $("td").hover( function () { },function () { } ); 或 $("td").hover(fn1,fn2);

    8.toggle(fn, fn2, [fn3, fn4, ...]) 每次点击后依次调用函数

    9.Ajax部分
    载入远程 HTML 文件代码并插入至 DOM 中: $("#demo").load("https://www.sodocs.net/doc/7016854277.html,");
    可以指定选择符,来筛选载入的HTML文档,DOM中将仅插入筛选出的HTML代码:$("#demo").load("https://www.sodocs.net/doc/7016854277.html, #u");


    默认使用 GET 方式 - 传递附加参数时自动转换为 POST 方式
    a. 以 POST 形式发送附加参数并在成功时显示信息 load(url, [data], [callback])
    $("#feeds").load("feeds.php", {limit: 25}, function(){...});

    $.get(url, [data], [callback], [type])
    $.post(url, [data], [callback], [type])
    $.getScript(url, [callback])


    $.get("check.asp?uid=chenda");
    $.get("check.asp", { "uid": "chenda" });
    $.getScript("test.js");
    $.getScript("test.js", function(){....});

    10.jQuery动画效果
    $("p").show(speed, [callback]) //speed值:"slow", "normal","fast",4000(4秒),以优雅的动画显示
    $("p").hide(speed, [callback]) //speed值:"slow", "normal","fast",4000(4秒),以优雅的动画隐藏
    $("p").toggle(speed, [callback] ); //以优雅的动画切换显示状态(隐藏或可见)

    无过渡动画版:$("p").toggle(); $("p").show(); $("p").hide();

    11. 滑动动画函数 Sliding
    $("p").slideDown("slow"); //用600毫秒缓慢的将段落滑下
    $("p").slideUp("slow"); //用600毫秒缓慢的将段落滑上
    $("p").slideToggle("slow"); //用600毫秒缓慢的将段落滑上或滑下
    淡入淡出函数 Fading
    $("p").fadeIn("slow"); //用600毫秒缓慢的将段落淡入
    $("p").fadeOut("slow"); //用600毫秒缓慢的将段落淡出
    $("p").fadeTo("slow", 0.66); //用600毫秒缓慢的将段落的透明度调整到0.66,大约2/3的可见度
    说明:fadeTo函数只改变对象的透明度, 即使透明度为0对象仍然占位. 而fadeIn和fadeOut后不占位

    12. 数组和对象操作
    $.each(object, [callback]); //遍历数组或对象
    如:$("img").each(function(i){ this.src = "test" + i + ".jpg"; });

    $.jQuery.grep(array, callback, [invert]) //过滤数组元素,返回数组
    如: $.grep( [0,1,2], function(n,i){ return n > 0;}); //返回: [1, 2]
    $.grep( [0,1,2], function(n,i){ return n > 0;}, true); //返回: [0]

    $.map( [0,1,2], function(n){ return n + 4;}); 返回:[4, 5, 6] //转换数组,返回数组
    $.map( [0,1,2], function(n){ return n > 0 ? n + 1 : null;}); //于 0 的元素加 1 ,否则删除,返回[2, 3]
    $.map( [0,1,2], function(n){ return [ n, n + 1 ];}); //返回:[0, 1, 1, 2, 2, 3]
    //原数组中每个元素扩展为一个包含其本身和其值加 1 的数组

    //转换为数组
    jQuery.makeArray(obj) : 将类数组对象转换为数组对象
    如:var arr = jQuery.makeArray(document.getElementsByTagName("div"));

    //查找数组
    jQuery.inArray( value, array ) : 查找元素是否在数组中,第一个为0,找不到为-1。

    //合并数组
    $.merge( [0,1,2], [2,3,4] )

    //其他
    jQuery.trim( str ) //去空格
    var params = { width:1680, height:1050 }; var str = jQuery.param(params); //返回: width=1680&height=1050






    0. 扩展jQuery对象
    jQuery.extend({
    min: function(a, b) { return a < b ? a : b; },
    max: function(a, b) { return a > b ? a : b; }
    });

    调用:jQuery.min(2,3); // => 2 ; jQuery.max(4,5); // => 5



    //==================================jQuery应用===============================
    1.为没有alt属性的标签,添加alt属性
    $("img").not("img[alt]").attr("alt","alt值");

    2.隔行换色
    $("#tbl tr:even").each(function() {this.style.background='#FFFFFF';});
    $("#tbl tr:odd").each(function() {this.style.background='#E8EEF2';});

    3.显示和隐藏弹出层(渐变动画效果)
    js:


    HTML:
    显示文字



    相关主题