javascript - jQuery 如何作用于多个选择器?

标签 javascript jquery chaining

我一直想知道 jQuery 如何作用于多个选择器。例如:

$("p").css({"border":"1px solid #000"});

对所有 p 标签执行后续功能。我已经浏览了 jQuery 源代码,但老实说,当您尝试实现一个特定的功能时,这是一本详尽的读物。我的假设是存在某种堆栈,css() 和其他函数仅作用于当前堆栈,这是由选择器函数决定的。

除此之外,我不知道如何复制它,因为我认为,javascript 中没有办法返回多个对象来执行一个函数。例如

House.first_bedroom.size = "large"
House.second_bedroom.size = "small"
House.all_rooms().alertSize();

alertSize() 必须是某些对象集合的成员函数,而不是 all_rooms() 返回的每个房间对象的成员函数?

最佳答案

首先,jQuery 函数(通常)返回一个 jQuery 对象,它的作用类似于数组并跟踪当前的匹配元素集。其次,在内部,每个 jQuery 函数都广泛使用 each() 函数来迭代匹配的对象,执行后续操作并构造新的 jQuery 对象以返回。有些函数确实返回 jQuery 以外的东西,比如 get()。这些功能不能链接。只有当函数返回一个 jQuery 对象时,链接才有可能。因为返回的对象是一个 jQuery 对象,所以它具有可用的 jQuery 的所有功能。

关于javascript - jQuery 如何作用于多个选择器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5841774/

相关文章:

javascript - Facebook 点赞视频自动播放和暂停

javascript - 如何使用jquery从隐藏输入中获取值?

java - 没有成功链接这两个 ffmpeg 命令

方法链中的 C++ 执行顺序

C# 有哪些替代方法可以沿调用链传播事件?

javascript - Ttrigger 额外参数

javascript - JS 将包含对象值的数组分配给对象键

javascript - 如何在 ES6 中使用类扩展对象?

javascript - 检查 div 的子元素是否少于两个

javascript - 当我在 UI 中将其与 Angular JS 模型绑定(bind)时,图像未呈现为文本