我有一个已知的容器div,我将动态地填充子项。我想在孩子上指定一些.css属性来定位它们,但是我想避免在我创建的每个子元素上手动设置.css样式。我将能够为每组元素动态生成一个唯一的类,所以如果有一种方法可以应用影响匹配某个选择器的元素的所有子元素的CSS,我希望这样做。如何动态设置元素的所有子元素的样式?
我的应用程序类似this fiddle.
var numChildren = 0;
$('.myButton').on('click', function(){
$('<div class=childDiv' + numChildren + '>Div!</div>')
.appendTo('.myDiv')
.css({
display: 'inline',
'padding-left': (10 + 10*numChildren) + 'px'
//I'd like to put something like this padding left class on the parent div.
//I know the class of all children that should have this style,
//but I don't know until I create the child.
});
$('<div class=childDiv' + numChildren + '>Div!</div>')
.appendTo('.secondDiv')
.css({
display: 'inline',
'padding-left': (10 + 10*numChildren) + 'px'
});
numChildren++;
});
在这个例子中,我动态生成的几个孩子像childDiv0
类。我可以使用某种padding-left
手动设置它们的全部样式,但在我的实际应用程序中,我生成了很多元素,而快速渲染它们所需的回流正在减慢我的应用程序。有没有办法将CSS应用于父代而不是孩子?我可以做类似这样的事情吗?
$('.parentElement').css(
':childWithSelector(.childDiv'+ numChildren + ').width', //Not a real thing :(
10 + 10*numChildren + 'px'
);
jQuery是可选的。
另外:不知道这个问题有多清楚。让我知道是否有任何混淆,我会尽力清除它。 – ckersch
#knowndiv div {}将已经选择所有的孩子。你是否只想瞄准其中的一些? –
我试图选择所有具有某个类的孩子,并将一些.css应用于他们,而不是将.css内联应用于每个子元素。 – ckersch