Javascript 如何选择包含img作为直接子项的最外层标记
我有以下标记Javascript 如何选择包含img作为直接子项的最外层标记,javascript,jquery,css,Javascript,Jquery,Css,我有以下标记 var-divs=$('div:has(img)')。而不是(':parent:has(>img)'); css('border','1px实心红色') 1. 2. 3. 4. 5. 6. 7. 8. 您的主要问题是:parent选择器并没有像您认为的那样执行操作。CSS规则永远不会上升。因此,如果需要向上移动,则需要使用JavaScript(使用函数.parent(),该函数在CSS选择器中没有等效项,甚至jQuery扩展选择器也没有) 但是,这会将所有内容都涂成红色,因为C
var-divs=$('div:has(img)')。而不是(':parent:has(>img)');
css('border','1px实心红色')代码>
1.
2.
3.
4.
5.
6.
7.
8.
您的主要问题是:parent
选择器并没有像您认为的那样执行操作。CSS规则永远不会上升。因此,如果需要向上移动,则需要使用JavaScript(使用函数.parent()
,该函数在CSS选择器中没有等效项,甚至jQuery扩展选择器也没有)
但是,这会将所有内容都涂成红色,因为CSS中的第一个C(“层叠”):1、5和8上的红色声明会将这些div中的所有文本涂成红色。为什么不使用类?@zzzzBov:我知道如何使用类,但我需要知道任何CSS或jQuery都可以这样做吗selector@PranavCBalan接近,但是没有优化。或者@Tushar:这就是我想要的:)
var divs = $('div:has(>img)').filter(function(i, n) { return !($(n).parent().children('img').length); });
divs.css('color','red');