jquery - 创建一组没有特定 child 的 parent

标签 jquery

我有 500 <p>元素,每个元素大约有 500 <span> css 设置为不透明度 1 的元素。

如果我$('p').css( 'opacity', .5 ) ,一切都在瞬间更新。

如果我$('p span').css( 'opacity', .5 ) ,更新需要几秒钟。明显地。它迭代每个元素。

我的问题是:给定任意一组 <span>不同的元素<p>元素,有没有一个好方法可以让除了这些跨度之外的所有内容都更改为不透明度 0.5?

我试过not$('p').not( $('p span').slice( 5, 600) ).css( 'opacity', .5 )不起作用——可能是因为我正在执行集合代数以将 child 从 parent 中删除。我希望它能隐式地起作用。唉。

有什么好的方法可以解决此类问题吗? Here's a fiddle .

$('p span').not( $('p span').slice( 5, 600) ).css( 'opacity', .5 )有效...但速度很慢:-/

最佳答案

我不能保证这会在这么多元素下表现良好,你可以这样做:

$("p > *").not("span").css("opacity", 0.5);

这将获取 <p> 的所有子对象标签,然后删除 <span>在应用不透明度之前从该集合中获取元素。所以只有<span> <p> 内的元素将不受影响标签。

仅供引用,如果您需要它表现良好,那么直接遍历树可能会比这快很多倍。在某些地方,直接 JS 代码比选择器操作快得多。

关于jquery - 创建一组没有特定 child 的 parent ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12084135/

相关文章:

javascript - Django 中的 AJAX - 单击元素会更新与更新脚本相关的所有计数器。我怎样才能防止这种情况发生?

javascript - 在 jquery 中隐藏一个 div

javascript - 使用 Javascript/jQuery 基于其长度的警报类

javascript - Swiper slider 鼠标滚动和循环内容

jquery - 如何选择两个相同标签之间的所有内容?

jquery - 如何在asp.net中构建数据库驱动的Jquery下拉菜单

javascript - 如何在CanJs中找出哪个 anchor 标签被点击并获取id?

php - 使用 jQuery 获取日期并使用 PHP 表单将其保存到 MySQL

javascript - 剪切 "<p></p>"内的字符串

javascript 函数不执行