浅学jQuery

353 阅读3分钟

此文由CHATGPT协助完成

jQuery 如何获取元素

jQuery 提供了多种方式来获取元素,具体包括以下几种:

  1. 通过元素选择器获取元素

可以使用类似 CSS 选择器的语法来获取元素,比如:

javascriptCopy code
$('.my-class') // 获取类名为 my-class 的元素
$('#my-id') // 获取 id 为 my-id 的元素
$('p') // 获取所有 <p> 元素
  1. 通过 HTML 标签名获取元素

可以直接使用标签名来获取元素,比如:

javascriptCopy code
$('p') // 获取所有 <p> 元素
$('div') // 获取所有 <div> 元素
  1. 通过父元素获取子元素

可以通过已经获取到的元素作为上下文来获取子元素,比如:

javascriptCopy code
$('.my-class').find('p') // 获取类名为 my-class 的元素中的所有 <p> 元素
$('#my-id').children() // 获取 id 为 my-id 的元素的所有直接子元素
  1. 通过筛选条件获取元素

可以使用多种筛选条件来获取元素,比如:

$('p:first-child') // 获取第一个 <p> 元素
$('p:last-child') // 获取最后一个 <p> 元素
$('p:nth-child(3)') // 获取第三个 <p> 元素
$('.my-class:not(.hidden)') // 获取类名为 my-class 但不含有类名为 hidden 的元素

这些都是 jQuery 获取元素的常用方式,根据具体场景可以灵活选择合适的方法。

插个话,有1说1,$()这个写法真的是为广大同胞省下了不少打字的功夫,还记得:比尔说自己不会弯腰捡地上的钱,因为他弯腰的功夫都要比地上的钱多,立刻有人说wINDOS卡浪费时间的笑话吗?

jQuery 的链式操作是怎样的

$('#test').find('.child').addClass('red').end().addClass('black')
//下面是更容易理解的形式

$('#test')
// 通过 `$` 函数获取一个 jQuery 对象,选择器为 `#test`,即选择 id 为 "test" 的元素。
.find('.child')
//在获取到的元素中使用 `find` 方法,查找其所有 class 为 "child" 的子元素。
.addClass('red')
//在找到的所有子元素上使用 `addClass` 方法,将名为 "red" 的 CSS 类添加到它们的 class 属性中
.end()
//在 jQuery 对象上使用 end 方法,将当前查询对象变回最近一次的查询结果,即 id 为 "test" 的元素
.addClass('black')
//在获取到的 id 为 "test" 的元素上使用 `addClass` 方法,将名为 "black" 的 CSS 类添加到它们的 class 属性中。

链式操作大概就是 一个操作接一个操作的链接在一起,成为一个链条

jQuery为什么可以做到链式操作?

jQuery之所以能够进行链式操作,是因为在每个方法中都返回了 this 对象,也就是 jQuery 对象本身,这样就能够在每个方法后继续调用下一个方法,实现链式操作。具体实现的方法是,在 jQuery 对象中的每个方法中,将当前对象返回,也就是通过 return this 的方式来实现。这样,每个方法都会返回 jQuery 对象本身,而不是返回 undefined 或其他值,从而能够支持链式调用。例如:

$('p').addClass('my-class').css('color', 'red').slideUp();

这个代码中,通过选择器获取了所有的 <p> 元素,并对它们进行链式操作,先是添加了类名,然后设置了 CSS 样式,最后通过 slideUp() 方法隐藏了这些元素。由于每个方法都返回了 jQuery 对象本身,因此可以一直进行下去,直到最后一个方法执行完毕。

用人话说就是:find('.child')这个方法执行完之后,就变成了jQuery对象,还可以使用自己(包括原型)的方法。

jQuery 如何创建元素

在 jQuery 库中,可以使用 ()函数来创建元素。具体而言,() 函数来创建元素。具体而言,() 函数可以接收一个 HTML 字符串作为参数,用于创建一个元素的 DOM 对象。例如:

// 创建一个 div 元素
const div = $('<div></div>');

// 创建一个带有 class 和 id 的 div 元素
const divWithClassAndId = $('<div></div>', {
  class: 'my-class',
  id: 'my-id'
});

// 创建一个包含文本的 p 元素
const pWithText = $('<p></p>').text('This is some text.');

将元素添加到指定的父元素中

可以使用 jQuery 的 appendTo 方法将元素添加到指定的父元素中。例如,将一个新的 div 元素添加到 body 元素中,可以这样写:

$("<div></div>").appendTo("body");

也可以先将元素添加到一个变量中,然后再通过 appendTo 方法添加到指定的父元素中。例如:

const newElement = $("<div></div>");
newElement.appendTo("body");

可以看到,通过 $() 函数可以非常方便地创建元素,并且可以在创建时指定元素的属性、样式等信息。

jQuery 如何移动元素

在 jQuery 中,可以使用 appendToprependTo 方法、insertBeforeinsertAfter 方法以及 detach 方法和 remove 方法来移动元素。

  • appendTo 方法:将指定元素添加到目标元素中的最后一个子元素位置。

例如,将元素 #element1 移动到元素 #element2 中:

$("#element1").appendTo("#element2");
  • prependTo 方法:将指定元素添加到目标元素中的第一个子元素位置。

例如,将元素 #element1 移动到元素 #element2 中的第一个位置:

$("#element1").prependTo("#element2");
  • insertBefore 方法:将指定元素插入到目标元素之前。

例如,将元素 #element1 移动到元素 #element2 之前:

$("#element1").insertBefore("#element2");
  • insertAfter 方法:将指定元素插入到目标元素之后。

例如,将元素 #element1 移动到元素 #element2 之后:

$("#element1").insertAfter("#element2");
  • detach 方法:从文档中移除元素,但保留元素及其数据和事件处理程序。

例如,将元素 #element1 移除:

$("#element1").detach();
  • remove 方法:从文档中移除元素,同时也会移除元素及其数据和事件处理程序。

例如,将元素 #element1 移除:

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

这些方法可以灵活地对元素进行移动、插入和删除等操作。

jQuery 如何修改元素的属性

jQuery提供了许多方法来修改元素的属性,以下是一些常用的方法:

  1. .attr():用于获取或设置元素的属性值,例如:$('img').attr('src', 'new.jpg') 将图片的 src 属性修改为 'new.jpg'。
  2. .prop():用于获取或设置元素的属性值,尤其是用于布尔属性,例如:$('input[type="checkbox"]').prop('checked', true) 将 checkbox 的 checked 属性设置为 true。
  3. .css():用于获取或设置元素的 CSS 属性,例如:$('p').css('color', 'red') 将所有段落的字体颜色设置为红色。
  4. .addClass():用于为元素添加一个或多个类名,例如:$('div').addClass('box') 将所有 div 元素添加类名为 'box'。
  5. .removeClass():用于移除元素的一个或多个类名,例如:$('div').removeClass('box') 将所有 div 元素移除类名为 'box'。
  6. .toggleClass():用于切换元素的一个或多个类名,例如:$('div').toggleClass('box') 将所有 div 元素的类名为 'box' 的类切换。

这些方法可以根据具体需求进行使用,使得元素的属性修改更加方便快捷。