jquery - 选择缓存的 jQuery 对象中的元素

标签 jquery

假设我们传递了以下元素:

var cachedElement = $('<div><p>Some text</p></div><aside>Some more text</aside>');

如果我知道元素中有什么,我就可以轻松地遍历它。例如,要查找 div,我可以使用:

cachedElement.filter('div');

并找到我可以使用的子元素:

cachedElement.find('p');

如果我不知道缓存元素的结构怎么办?我如何搜索一个元素,它可以是父元素、子元素或两者。

我想知道是否有一种方法可以为我做到这一点。我不想将元素包装在 div 中并使用 .find() 进行搜索。

我最好的解决方案是以下低效(且丑陋)的选择器:

cachedElement.filter('selector_string').add(cachedElement.find('selector_string')).eq(0)

在我的特殊情况下,我只需要第一个元素。

有什么想法吗? 谢谢

最佳答案

我看不出您有什么理由不想将内容包装在 div 中:

$('<div />').append(cachedElement).find('selector_string').eq(0);

可以执行以下操作:

cachedElement.find('*').andSelf().filter('selector_string').eq(0);

这将选择 cachedElement所有后代并添加 cachedElement。因此,您将选择一个 jQuery 对象中的所有元素。但这对我来说似乎也相当低效。

关于jquery - 选择缓存的 jQuery 对象中的元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6393267/

相关文章:

javascript - Highcharts 自定义导出在重置时隐藏

javascript - 背景图片轮播

javascript - "$.getJSON("myurl",response);"的等效回调函数?

javascript - 如何制作交互式 Highcharts 工具提示

javascript - 如何仅将选定列表中的 1 个值发布到 Controller 代码

javascript - 如何在没有单击或来自 php 的 onload 事件的情况下执行 javascript?

c# - Kendo 网格导出到 Excel 货币格式

jquery - 定位 parent 的第一个 child

JQuery 日期范围 : How to trigger an init "selection" event to set default values

javascript - Struts2 jQuery 自动完成器不转义 ASCII