• jQuery(一)基础、获取和设置属性


    一、简介

    1、jQuery可以方便地操作文档,查找文档里的元素,修改元素内容,编辑Html属性和CSS属性,定义事件以及执行动画效果。

    2、jQuery可以动态生成Ajax Http请求。

    3、jQuery提供通用的功能,如操作对象和数组。

    二、基础

    1、jQuery函数

    jQuery定义的唯一的全局函数是jQuery(),也是jQuery库中最重要的函数,同时为了简化,该函数的另一个名称是$(). 

    jQuery()是一个重载函数,调用$()的四种方式:

    (1)、传递一个css选择器参数,可以有可选的第二个参数,第二个参数一般是一个元素或者一个jQuery对象。返回一个jQuery对象,代表了文档中匹配的元素集合。

    (2)、传递一个元素,一个文档或者一个窗体对象,作用是把传递的参数包装成一个jQuery对象,如:$(document),$(this)

    (3)、传递一个html文本字符串,可以生成一个新的元素,可以有可选的第二个参数,第二个参数可以是一个文档对象,表示创建的元素是和该文档关联的,第二个参数也可以是普通的对象,用来定义新创建的元素的属性,如:var img=$(<img/>,{src:url,css:{borderWidth:5},click:handlerClick});

    (4)、传递一个函数,函数在文档加载完成可以被操作的时候调用,这其实是onload方法的jQuery版本。

    2、查找与查找结果

    当传递一个css选择器,jQuery函数返回的是一个jQuery对象,这个jQuery对象是一个类数组对象,表示文档中匹配的元素集合。可以使用访问数组中元素的方法访问这个集合中的对象,如:

    $("body").length, $("body")[0],也可以使用jQuery对象的方法来访问,$("body").size(), $("body").get(0),也可以使用jQuery对象的toArray把它转成一个真正的数组对象。

    (1)jQuery对象的属性

    jQuery对象除了有length属性外,另外三个有趣的属性是:jquery, context, selector,如:var bodyscripts=$("script",document.body);

    bodyscripts.context;  //context属性表示调用jQuery函数时的第二个参数,未指定时为document对象,此例为:document.body

    bodyscripts.selector; //selector属性表示创建jQuery对象时使用的selector字符串,此例为:"script"

    bodyscripts.jquery;  //存在jquery属性的目的是为了表示这个对象是一个jQuery对象,返回的是jQuery的版本号。可是用此属性判断一个对象是否是一个jQuery对象

    (2)jQuery对象的方法

    each(f)   //类似Array的forEach方法,在jQuery对象里的每个元素调用回调函数f,f有两个参数,第一个为元素在jQuery对象中的索引,第二个为元素本身。f方法体中的this代表元素本身。

    map(f)   //类似上面的each方法,不过返回一个新的jQuery对象,如:$(":header").map(function(){return this.id;}).toArray().sort();

    index()  //重载函数,返回满足条件的元素中jQuery对象中的索引。参数可以是一个元素,一个css选择器,也可以是一个jQuery对象。

    is()      //传入一个css选择器参数,判断jQuery对象中是否至少有一个元素满足selector条件

    三、jQuery的获取器和设置器(getter,setter)

    对jQuery对象的最简单和最常用的操作是获取或者设置jQuery对象中的元素的html属性,比如:元素的内容,元素的css属性,元素的图形等。首先我们有几点规律需要知道:

    a. 获取或者设置都是同一个方法。如:attr(),是用来获取和设置元素的html属性的。

    b. 当设置时,jQuery对象中每个元素都被设置,并且返回jQuery对象本身,这样可以链式调用设置器。

    c. 当获取时,只获取jQuery对象中第一个元素对应的属性

    d. 当设置时,可以传入一个对象,这样对象上的每个属性都被设置到jQuery对象中的每个元素上。

    e. 当设置时,可以使用一个函数作为值,函数用来计算元素的最终要赋值的属性值,函数中的this表示元素本身,第一个参数表示元素的索引,第二个表示元素原来的属性值。

    1、获取和设置html属性:attr()

    attr()方法完全满足上面5条规律,如:$("form").attr("action"), $("#icon").attr("src","icon.png");

    使用removeAttr()方法,完全移除某个html属性,如:$("a").removeAttr("target")把所有链接元素的目标属性都清除,是的所有链接都在同一个窗口加载。

    2、获取和设置css样式属性:css()

    css()和attr()类似,只不过是用来获取或者设置元素的css样式属性的。如:

    $("h1").css("font-weight") $("h1").css("fontWeight")  //css()函数中的样式名,既可以使用连字符,也可以使用驼峰式风格

    css() 不能获取复合样式,比如font,而只能获取单个的样式,如:font-weight,font-family

    但是css()可以设置复合样式,如:$("div.note").css("border","solid black 2px")

    3、添加、移除、开关和测试css类属性:addClass, removeClass, toggleClass, hasClass

    4、获取和设置html form元素的值:val()

    val() 函数用来获取和设置html表单元素value属性的值,或者checkbox, radio buttons, select 元素的选择状态,如:

    $("#surname").val();   $("select#extras").val();  $("input:radio[name=ship]:checked").val();

    $("#email").val("Invalid email address");//设置email text field的值

    $("input:checkbox").val(["opt1","opt2"]);

    $("input:text").val(function(){return this.defaultValue;});

    5、获取设置html元素的内容 text() , html()

    text()和html()分别用来获取和设置html元素的纯文本内容或者html文本内容,使用html获取时,实际上是获取第一个元素的html文本,如:x.html()等同于:x[0].innerHTML;

    $("h1").text(function(n,current_text){return n+current_text;});//给每个h1标签的内容前加个序号

    6、获取和设置元素的图形: offset(), postion(), width(),innerWidth(),outWidth(),height(),innerHeight(),outHeight()

    offset(), 获取和设置一个元素的位置,offset()返回一个对象,包含left和top属性,表示元素的文档坐标。如果传递一个这样的对象给offset函数,即使设置元素的位置,如:

    var elt=$("#sprite"); var pos=elt.offset(); pos.left+=100; elt.offset(pos);

    $("h1").offset(function(index,curpos){return {left:curpos.left+25*index,top:curpos.top};});

    两个window的jQuery对象函数:scrollLeft,scrollTop,如滚动翻页函数:

    function(n){var w=$(window);var pagesize=window.height();var current=w.scrollTop();w.scrollTop(current+n*pagesize);}

    7、获取设置元素的数据:data(), removeData()

    $("div").data("x",1);//为所有div元素设置数据:x=1,使用两个参数

    $("#email").data({from:"aa@12.com",to:"bb@12.com"});//使用一个对象参数,设置多个数据

    $("div").data(); //获取第一个div元素上设置的所有数据,以键值对返回

    $("div").data("x");//获取第一个div元素上的x键对应的数据,只能获取jQuery对象中第一个元素的对应数据。

    removeData()函数用来删除数据。适用jQuery对象上的所有元素。

    jQuery对象方法data()和removeData()有对应的jQuery函数:e.data(...) 等同于$.data(e,...)

  • 相关阅读:
    Python3 字符串格式化
    TypeError: Object of type 'int32' is not JSON serializable
    论文学习——《Learning to Compose with Professional Photographs on the Web》 (ACM MM 2017)
    python中PIL.Image,OpenCV,Numpy图像格式相互转换
    python 在列表,元组,字典变量前加*号
    python指定概率随机取值 理解np.random.seed()
    论文学习——《Good View Hunting: Learning Photo Composition from Dense View Pairs》
    目标检测知识杂点
    VGG16学习笔记
    python png与jpg的相互转换
  • 原文地址:https://www.cnblogs.com/winson/p/3410986.html
Copyright © 2020-2023  润新知