假设我们传递了以下元素:
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/