jQuery 选择器上下文在 $().find 中不起作用
我的问题是关于 jQuery $().find 函数中的“this”(选择器上下文)。
我下面的代码获取了 li
的集合。 然后使用该集合来“查找”h3。 然后在 h3 后面添加一个 div 元素,并尝试使用 $().data 函数将新的 div 元素关联到 h3 上以供以后使用。
有谁知道为什么当我运行此代码时,数据函数内部的 $(this) 返回 DOCUMENT 而不是 $posts 集合中的 li
?
var $posts = $('#blog ul').children();
$posts.find("h3").after("<div></div>").data("div", $(this).parent().find('div'))
My question is about "this" (selector context) within the jQuery $().find function.
My code below grabs a collection of li
.
Then uses that collection to "find" an h3.
Then adds a div element after the h3 and attempts to use the $().data function to associate the new div element onto the h3 for later use.
Does anyone know why when I run this code the $(this) inside of the data function returns the DOCUMENT and not an li
from the $posts collection?
var $posts = $('#blog ul').children();
$posts.find("h3").after("<div></div>").data("div", $(this).parent().find('div'))
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,您暗示调用函数
find()
以某种方式创建了一个范围。 this 上下文只能在函数内创建:如果 posts 集合中只有 1 个 h3,您可以缓存它。
否则,您正在寻找
each
方法;yes, you are implying that calling the function
find()
somehow creates a scope. The this context can only be created within a function:if it is the case that there will only be 1 h3 in the posts collection you could cache it.
Otherwise you are looking for the
each
method;