JQuery 操作DOM

设置和获取 html、text 和 val

html()

  • $(selector).html(); :获取元素 HTML 元素
  • $(selector).html(content); :设置元素 HTML 元素
  • $(selector).html(function(index,element)) :使用函数设置元素内容;index — 返回集合中元素的索引值;element — 返回被选中元素的对象

类似于 javascript 中的 innerHTML 属性,可以用来读取或设置某个元素中的 HTML 内容。设置内容时:新的内容会将原有内容覆盖,HTML标签会被解析执行。

text()

  • $(selector).text(); :获取文本内容
  • $(selector).text(content); :设置文本内容
  • $(selector).text(function(index,element)) :使用函数设置文本内容

类似于 javascript 中的 innerText 属性,可以用来读取或设置某个元素中的纯文本内容。设置内容时:新的内容会将原有内容覆盖,HTML标签不会被解析执行。

val()

  • $("#id").val(); :获取 value 属性

  • $("#id").val(value); :设置 value 属性

  • $("#id").val(function(index,element)); :使用函数设置 value 属性

类似于 javascript 中的 value 属性,可以用来设置和获取元素的值。文本框、下拉列表、单选框等都可以返回元素的值。如果元素为多选,则返回包含所有选择的值的数组。

属性操作

使用 attr() / prop() 方法来获取和设置元素属性,removeAttr() /removeProp() 方法来删除元素属性。

attr 和 prop 的区别:

  • 如果操作的是元素的固有属性,建议使用 prop

  • 如果操作的是元素自定义的属性,建议使用 attr

    功能 示例
    获取属性 var txt = $(“p”).attr(“attr_name”);
    设置单个属性 $(“p”).attr(“attr_name”,“new value”);
    设置多个属性值 $(“p”).attr(“attr1_name”:“new value”,“attr2_name”:“new value”);
    删除属性 $(“p”).removeAttr(“attr_name”);

样式操作

addClass("class1"):向被选中元素添加一个或多个 class

removeClass("class1 class2"):从被选元素删除一个或多个 class,不输如指定 class 时移除所有 class

toggleClass("class1"):如果存在(不存在)就删除(添加) class 属性

CSS DOM 操作

就是读取和设置 style 对象的个各种属性。

  • css():设置或返回样式属性,如果属性中带有”-“符号,设置属性时使用驼峰式写法
功能 示例
获取元素的样式属性 $("#test”).css(“color”)
设置某个元素的单个样式 $("#test”).css(“color”,“red”)
设置某个元素的多个样式 $("#test”).css({“color”:“red”,“fontSize”:“30px”})

其它方法使用:

方法 描述 示例
height() 获取和设置元素的高度,数字默认单位:px $(“p”).height() / $(“p”).height(100)
width() 获取和设置元素的宽度,数字默认单位:px $(“p”).width() / $(“p”).width(100)
poistion() 获取元素相对于最近的一个定位样式属性的祖父节点的相对偏移 $(“p”).position().left / .top
scrollTop() 获取和设置元素的滚动条距离顶端的距离 $(“p”).scrollTop() / $(“p”).scrollTop(300)
scrollLeft() 获取和设置元素的滚动条距离左侧的距离 $(“p”).scrollLeft() / $(“p”).scrollLeft(300)

节点操作

插入节点

将动态创建的 HTML 元素插入到文档中。方法:将该元素成为文档某个节点的子节点。

this:代表当前选中的节点对象。

方法 描述 示例
append() 向每个匹配的元素(父)内部追加内容(子) $(“div”).append(“html”);
appendTo() 将所有匹配的元素(子)追加到指定的元素(父)中 $(“html”).appendTo(“div”);
prepend() 向每个匹配的元素(父)内部前置内容(子) $(“div”).prepend(“html”);
prependTo() 将所有匹配的元素(子)前置到指定的元素(父)中 $(“html”).appendTo(“div”);
before() 在每个匹配的元素之前插入内容,兄弟节点 $(“div”).before(“html”);
insertBefore() 将所有匹配的元素插入到指定元素的前面,兄弟节点 $(“html”).insertBefore(“div”);
after() 在每个匹配的元素之后插入内容,兄弟节点 $(“div”).after(“html”);
insertAfter() 将所有匹配的元素插入到指定元素的后面,兄弟节点 $(“html”).insertAfter(“div”);
remove([option]) 从DOM中删除匹配的元素,当前和后代节点都被移除 $(“div”).remove();
empty() 清空元素的所有后代元素,保留当前对象以及其属性节点 $(“div”).empty();
clone([true]) 克隆匹配的DOM元素并且选中这些克隆的副本,true复制事件 $(“span”).clone(true).append(“div”);

遍历节点

for 循环

  • for(初始化值; 循环结束条件; 步长)

$(selector).each(callback):回调函数返回 false 则结束循环,返回 true 则继续循环

  • $("img").each(function(i){this.src = "test" + i + ".jpg";});
    

$.each(object,callback)

  • $.each($("img"),function(i){this.src = "test" + i + ".jpg";});