【一】操作标签
【1】操作类
(1)JS版本
[1]classList.add()
方法
| element.classList.add("class1", "class2"); |
复制
[2]classList.remove()
方法
| element.classList.remove("class1", "class2"); |
复制
[3]classList.contains()
方法
| if (element.classList.contains("class1")) { |
| |
| } else { |
| |
| } |
复制
[4]classList.toggle()
方法
- 用于在元素的类名中切换指定的类名。
- 如果类名不存在,则添加类名;
- 如果类名已存在,则移除类名。
| element.classList.toggle("class"); |
复制
(2)jQuery版本
[1]addClass()
方法
| $(element).addClass("class1 class2"); |
复制
[2]removeClass()
方法
| $(element).removeClass("class1 class2"); |
复制
[3]hasClass()
方法
| if ($(element).hasClass("class1")) { |
| |
| } else { |
| |
| } |
复制
[4]toggleClass()
方法
- 用于在元素的类名中切换指定的类名。
- 如果类名不存在,则添加类名;
- 如果类名已存在,则移除类名。
| $(element).toggleClass("class"); |
复制
【2】CSS
- jQuery的链式操作,使用jQuery可以做到一行代码操作很多标签
复制
| $('p').first().css('color','red').next().css('color','green') |
复制
jQuery对象调用jQuery方法,返回的是jQuery对象,可以继续调用
【二】jQuery操作CSS
【1】添加 CSS 类名
- 您可以使用
addClass()
方法来添加一个或多个 CSS 类到元素中。
| $("#myElement").addClass("myClass"); |
| |
| |
复制
【2】移除 CSS 类名
- 您可以使用
removeClass()
方法来从元素中移除一个或多个 CSS 类。
| $("#myElement").removeClass("myClass"); |
| |
| |
复制
【3】切换 CSS 类名
- 您可以使用
toggleClass()
方法来在元素上切换一个或多个 CSS 类。 - 如果元素已经具有该类,则该方法会将其移除;否则,它会添加该类。
| $("#myElement").toggleClass("myClass"); |
| |
| |
复制
【4】设置 CSS 属性
- 您可以使用
css()
方法来设置元素的 CSS 属性。 - 该方法接受两个参数,第一个参数是要设置的 CSS 属性名称,第二个参数是属性的值。
| $("#myElement").css("color", "red"); |
| |
| |
复制
【5】获取 CSS 属性
- 您可以使用
css()
方法来获取元素的 CSS 属性值。 - 该方法接受一个参数,即要获取的 CSS 属性名称。
| var color = $("#myElement").css("color"); |
| |
| |
复制
【三】jQuery链式操作
【1】Python代码解释链式操作本质
| class MyClass(object): |
| def func1(self): |
| print('func1') |
| return self |
| |
| def func2(self): |
| print('func2') |
| return self |
| |
| obj = MyClass() |
| obj.func1().func2() |
复制
- 这段代码是一个 Python 类的示例,其中定义了一个名为
MyClass
的类。
- 该类中包含两个方法
func1
和 func2
,这两个方法都打印出一些信息,并返回 self
,即当前对象的引用。
- 然后创建了一个
MyClass
的实例 obj
。
- 接着使用链式操作方式调用了
func1
方法和 func2
方法,并将它们打印出来。
- 执行以上代码的结果将会是:
复制
- 通过链式操作的方式,可以连续调用对象的多个方法,而无需在每次调用方法后重新引用对象。
- 在这个示例中,
func1
方法被调用后返回了 self
,即当前对象的引用,然后就可以直接在返回的对象上调用 func2
方法。
【2】jQuery链式操作
- jQuery链式操作是指在使用jQuery库进行 DOM 操作时,可以通过将多个方法调用以点号符号"." 连接起来,形成一个链式的方法调用序列。
- 这种方式可以简化代码,提高代码的可读性和可维护性。
- 链式操作的基本原理是每个方法都返回当前对象的引用,这样就可以直接在返回对象上继续调用其他方法。
- 以下是链式操作的示例:
| $(".myClass") |
| .css("color", "red") |
| .addClass("highlight") |
| .fadeIn(100); |
复制
- 在上面的代码中,首先通过
$
符号选择了所有类名为 myClass
的元素。
- 然后连续调用了
css
、addClass
和 fadeIn
方法,每个方法都在前一个方法的返回对象(即选中的元素集合)上执行操作。
【四】jQuery位置操作
- jQuery提供了一系列常用的位置操作方法,可以用来获取或设置元素的位置信息。
【1】.offset()
相对于浏览器窗口
- 用于获取或设置元素相对于文档的偏移值。
- 如果不传递任何参数,则返回一个包含 left 和 top 属性的对象,表示元素相对于文档左上角的位置。
- 如果传递参数,可以设置元素的偏移值。
【2】.position()
相对于父标签
- 用于获取元素相对于其最近的具有定位(positioned)祖先元素的偏移值。
- 返回一个包含 left 和 top 属性的对象,表示元素相对于定位祖先的位置。
不加参数就是获取,加参数就是设置值
- 用于获取或设置元素的滚动条的垂直或水平偏移值。
.scrollTop()
返回或设置元素垂直方向的滚动条偏移值.scrollLeft()
返回或设置元素水平方向的滚动条偏移值。
复制
| |
| $(window).scroll(function () { |
| if($(window).scrollTop() > 600){ |
| alert('超过600了 架不住了') |
| } |
| }) |
复制
【4】.offsetParent()
- 用于获取元素的最近的具有定位(positioned)祖先元素。
- 定位祖先是指设置了位置属性(position)为 relative、absolute 或 fixed 的祖先元素。
【5】.height()
和 .width()
- 用于获取或设置元素的高度和宽度。
.height()
返回或设置元素的内容区域的高度.width()
返回或设置元素的内容区域的宽度。
【五】jQuery尺寸操作
【1】.height()
和 .width()
- 这两个方法用于获取或设置元素的高度和宽度。
- 如果不传递参数,它们分别返回元素的内容区域的高度和宽度。
- 如果传递一个数字作为参数,可以设置元素的高度和宽度。
【2】.innerHeight()
和 .innerWidth()
- 这两个方法用于获取元素的内部高度和宽度,包括内容区域和内边距(padding)。
【3】.outerHeight()
和 .outerWidth()
- 这两个方法用于获取元素的外部高度和宽度,包括内容区域、内边距和边框,但不包括外边距。
- 可以通过传递一个布尔值参数来指定是否包括边框,默认为false。
【4】.outerHeight(true)
和 .outerWidth(true)
- 这两个方法用于获取元素的完整的外部高度和宽度,包括内容区域、内边距、边框和外边距。
【六】jQuery文本操作
【1】JS版本
(1) innerText
innerText
属性用于获取或设置指定元素及其所有后代元素的文本内容,会自动忽略HTML标签。
| var element = document.getElementById("my-element"); |
| var text = element.innerText; |
| console.log(text); |
| |
| element.innerText = "New text content"; |
复制
(2)innerHTML
innerHTML
属性用于获取或设置指定元素的HTML内容,包括HTML标签。
| var element = document.getElementById("my-element"); |
| var html = element.innerHTML; |
| console.log(html); |
| |
| element.innerHTML = "<p>New HTML content</p>"; |
复制
需要注意的是,使用innerHTML
属性时需要小心防止XSS(跨站脚本攻击),确保插入的HTML代码是可信的。
【2】jQuery版本
(1).text()
| var text = $(".my-element").text(); |
| console.log(text); |
复制
| $(".my-element").text("New text content"); |
复制
(2).html()
| var html = $(".my-element").html(); |
| console.log(html); |
复制
| $(".my-element").html("<p>New HTML content</p>"); |
复制
(3).val()
| var value = $("#my-input").val(); |
| console.log(value); |
| |
| |
| |
| $("#my-input")[0].files[0]; |
复制
| $("#my-input").val("New value"); |
复制
(4) .append()
| $(".my-element").append("<span>Appended content</span>"); |
复制
(5) .prepend()
| $(".my-element").prepend("<span>Prepended content</span>"); |
复制
(6).after()
| $(".my-element").after("<div>Content after</div>"); |
复制
(7) .before()
| $(".my-element").before("<div>Content before</div>"); |
复制
【七】jQuery属性操作
-
在用变量存储对象的时候
-
JS中推荐使用
-
jQuery中推荐使用
【1】JavaScript版本
(1)setAttribute(attributeName, attributeValue)
- 通过该方法可以设置元素的属性值。
- 将属性名称和属性值作为参数传递给该方法,即可设置指定元素的属性值。
| |
| element.setAttribute('attribute', 'value'); |
复制
(2)getAttribute(attributeName)
| |
| var value = element.getAttribute('attribute'); |
复制
(3)removeAttribute(attributeName)
| |
| element.removeAttribute('attribute'); |
复制
【2】jQuery版本
(1)attr(name, value)
:
- 使用该方法可以设置元素的属性值。
- 将属性名称和属性值作为参数传递给该方法,即可设置指定元素的属性值。
| |
| $('.my-element').attr('attribute', 'value'); |
复制
(2)attr(name)
| |
| var value = $('.my-element').attr('attribute'); |
复制
(3)removeAttr(name)
| |
| $('.my-element').removeAttr('attribute'); |
复制
【八】针对checked的特殊方法prop
- 对于标签上有的能看到的属性和自定义属性用attr
- 对于返回布尔值,比如checkbox、radio、option是否被选中用prop
.prop()
方法是 jQuery 库中用于获取或设置元素属性值的一种方法。
| |
| prop('checked') 结果是布尔值 |
| prop('checked',false) 动态设置 |
复制
【1】获取属性值
(1)语法
| $(selector).prop(propertyName) |
复制
(2)功能
- 该方法用于获取指定元素的属性值。
selector
是一个选择器,用于选取目标元素;propertyName
是要获取的属性名。
(3)示例
| |
| var isChecked = $('input[type="radio"]').prop("checked"); |
| console.log(isChecked); |
| |
| |
| var isChecked = $('input[type="checkbox"]').prop("checked"); |
| console.log(isChecked); |
复制
【2】设置属性值
(1)语法
| $(selector).prop(propertyName, value) |
复制
(2)功能
- 该方法用于设置指定元素的属性值。
selector
是一个选择器,用于选取目标元素;propertyName
是要设置的属性名;value
是要设置的属性值。
(3)示例
| |
| $('input[type="radio"]').prop("checked", true); |
| |
| |
| $('input[type="checkbox"]').prop("checked", false); |
复制
【3】小结
- 需要注意的是,在实际使用时,
selector
应该根据具体情况指定合适的选择器来选取目标元素。- 例如,可以使用类名、ID、标签名或其他属性等作为选择器来选取所需的元素。
- 总结起来
.prop()
方法可以帮助您获取或设置目标元素的属性值,无论是获取复选框或单选框的选中状态还是设置它们的状态。- 记得根据具体需求使用合适的选择器选取目标元素,然后调用
.prop()
方法来操作属性值。
【九】jQuery文档处理
【1】JavaScript
(1)createElement(tagName)
| var newDiv = document.createElement('div'); |
复制
(2)appendChild(node)
- 将一个节点添加为另一个节点的子节点。
- 可以用来将新创建的元素添加到文档中的某个元素内部。
| var parentElement = document.getElementById('parent'); |
| parentElement.appendChild(newDiv); |
复制
【2】jQuery
(1)$(selector)
- 使用选择器来选取匹配的元素,并返回一个jQuery对象。
复制
(2)$(selector).prepend(content)
内部头部追加
[1]语法
| $(selector).prepend(content); |
复制
[2]示例一:插入单个内容
| $('div').prepend('<p>This is a new paragraph.</p>'); |
复制
[3]示例二:插入多个内容
- 如果要插入多个内容,可以通过链式调用来连续进行 prepend 操作。
| $('div').prepend('<p>Paragraph 1</p>').prepend('<p>Paragraph 2</p>'); |
复制
- 上述示例会先在每个
<div>
元素内部的开头位置插入 "Paragraph 1",然后再在开头位置插入 "Paragraph 2"。
(3)$(selector).append(content)
内部尾部追加
| $('div').append('<p>This is a new paragraph.</p>'); |
复制
(4)$(selector).appendTo()
目标元素内部尾部追加
[1]语法
| $(currentElement).appendTo(targetElement); |
复制
-
currentElement
:
- 要插入的当前元素,可以是 HTML 字符串、DOM 元素、或者其他 jQuery 对象。
-
targetElement
:
- 目标元素,表示要将当前元素插入到该元素内部的末尾位置。
[2]示例
| $('<p>This is a new paragraph.</p>').appendTo('div'); |
复制
(5)$(selector).insertAfter(target)
将目标元素插入到指定目标元素的后面。
[1]语法
| $(selector).insertAfter(target); |
复制
selector
:选择器,表示要选中的目标元素。target
:目标元素,可以是选择器、DOM 元素或者 jQuery 对象,表示要将目标元素插入到它后面。
[2]示例一:插入单个元素
| $('<p>This is a new paragraph.</p>').insertAfter('div'); |
复制
[3]示例二:插入多个元素
- 如果要插入多个目标元素,可以通过链式调用来连续进行 insertAfter 操作。
| $('<p>Paragraph 1</p>').insertAfter('div').insertAfter('span'); |
复制
- 上述示例会先在每个
<div>
元素后面插入 "Paragraph 1",然后再在每个 <span>
元素后面插入 "Paragraph 1"。
(6)$(selector).insertBefore(content)
[1]语法
| $(content).insertBefore(selector); |
复制
selector
:选择器,表示目标元素。content
:要插入的内容,可以是 HTML 字符串、DOM 元素或者 jQuery 对象。
[2]示例一:所有元素前插入相同的元素
| $('<p>Insert this paragraph</p>').insertBefore('div'); |
复制
[3]示例二:多个目标元素前插入相同的元素
- 如果要在多个目标元素前插入相同的元素,可以通过链式调用来连续进行插入操作。例如:
| $('<p>Paragraph 1</p>').insertBefore('div').insertBefore('span'); |
复制
- 上述示例会先将 "Paragraph 1" 插入每个
<div>
元素之前,然后再将 "Paragraph 1" 插入每个 <span>
元素之前。
(7)$(selector).before(content)
[1]语法
| $(selector).before(content); |
复制
selector
:选择器,表示要选中的目标元素。content
:要插入的内容,可以是 HTML 字符串、DOM 元素或者 jQuery 对象。
[2]示例一:所有元素前插入相同的元素
| $('<p>This is a new paragraph.</p>').before('div'); |
复制
[3]示例二:多个目标元素前插入相同的元素
- 如果要在多个目标元素前插入相同的内容,可以通过链式调用来连续进行插入操作。例如:
| $('<p>Paragraph 1</p>').before('div').before('span'); |
复制
- 上述示例会先在每个
<div>
元素前插入 "Paragraph 1"
- 然后再在每个
<span>
元素前插入 "Paragraph 1"。
(8)$(selector).after(content)
[1]语法
| $(content).insertAfter(selector); |
复制
selector
:选择器,表示目标元素。content
:要插入的内容,可以是 HTML 字符串、DOM 元素或者 jQuery 对象。
[2]示例
| $('<p>Insert this paragraph</p>').insertAfter('div'); |
复制
-
上述示例会将一个新的 <p>
元素插入到页面上的所有 <div>
元素之后。
-
该方法会将选中的元素插入到目标元素之后,成为同级的下一个元素。
- 插入的内容可以是文本、HTML 元素或者其他 DOM 元素。
-
如果要在多个目标元素后插入相同的元素,可以通过链式调用来连续进行插入操作。例如:
| $('<p>Paragraph 1</p>').insertAfter('div').insertAfter('span'); |
复制
- 上述示例会先将 "Paragraph 1" 插入每个
<div>
元素之后,然后再将 "Paragraph 1" 插入每个 <span>
元素之后。
(9)$(selector).remove(content)
[1]语法
| $(selector).remove(content); |
复制
selector
:选择器,表示目标元素。content
:可选参数,表示要过滤的内容,只有与指定内容匹配的元素会被删除。可以是一个选择器、字符串或者 DOM 元素。
[2]示例
复制
-
上述示例会删除页面上所有的 <p>
元素及其子元素。
-
该方法会移除与选择器匹配的元素,并且将其从文档中删除。
- 如果提供了
content
参数,则只有与该参数内容匹配的元素才会被删除。
-
如果想要从文档中移除多个不同的元素,可以使用多个选择器或者多次调用 remove()
方法来实现。例如:
| $('.class1, .class2').remove(); |
复制
(10)$(selector).empty(content)
[1]语法
| $(selector).empty(content); |
复制
selector
:选择器,表示目标元素。content
:选参数,表示要过滤的内容,只有与指定内容匹配的子元素会被清空。可以是一个选择器、字符串或者 DOM 元素。
[2]示例
复制
-
上述示例会清空上所有 <div>
元素的子元素。
-
该方法将会移除所选元素的所有子元素,但会保留自身。
- 如果提供了
content
参数,则只有与该参数内容匹配的子元素才会被清空。
-
与 remove()
方法不同的是,empty()
方法仅清空元素的子元素,而不会将元素本身从文档中删除。
-
如果想同时清空多个不同元素的子元素,可以使用多个选择器或者多次调用 empty()
方法来实现。例如:
| $('.class1, .class2').empty(); |
复制
【补充】
【1】.html()
(1)语法
(2)功能
- 获取或设置元素的 HTML 内容。如果不提供参数,则返回第一个匹配元素的 HTML 内容;
- 如果提供参数,则将指定的 HTML 内容设置给所有匹配元素。
(3)示例
| |
| var htmlContent = $('h1').html(); |
| |
| |
| $('div').html('<p>This is a paragraph.</p>'); |
复制
【2】.text()
(1)语法
(2)功能
- 获取或设置元素的文本内容。如果不提供参数,则返回第一个匹配元素的文本内容;
- 如果提供参数,则将指定的文本内容设置给所有匹配元素。
(3)示例
| |
| var textContent = $('p').text(); |
| |
| |
| $('div').text('This is some text.'); |
复制
【3】.val()
(1)语法
(2)功能
- 获取或设置表单元素的值。
- 如果不提供参数,则返回第一个匹配元素的值;
- 如果提供参数,则将指定的值设置给所有匹配元素。
(3)示例
| |
| var inputValue = $('input[type="text"]').val(); |
| |
| |
| $('input[type="text"]').val('New Value'); |
复制