Jquery 对于每一篇文章,以及其中的每一段引文,都有不同的风格

Jquery 对于每一篇文章,以及其中的每一段引文,都有不同的风格,jquery,css,Jquery,Css,Tumblr通常在blockquote中包含blockquote,在blockquote中包含blockquote等等。。。我想让每个人都与众不同。CSS nth child不起作用,所以我求助于jQuery[我不熟悉它,需要时使用stackoverflow]并使用以下方法: $('.post blockquote').each(function(index, element){ if(index % 2 == 0) { $(element).addClass('even'); }

Tumblr通常在blockquote中包含blockquote,在blockquote中包含blockquote等等。。。我想让每个人都与众不同。CSS nth child不起作用,所以我求助于jQuery[我不熟悉它,需要时使用stackoverflow]并使用以下方法:

 $('.post blockquote').each(function(index, element){
     if(index % 2 == 0) { $(element).addClass('even'); }

     if(index != 0) { $(element).addClass('inside'); }
 });
它是有效的,但它不会在一篇文章中这样做,然后重新开始,只是继续到下一篇,以此类推。所以我试着这样来总结:

$(".post").each(function() {
 $('blockquote').each(function(index, element){
     if(index % 2 == 0) { $(element).addClass('even'); }

     if(index != 0) { $(element).addClass('inside'); }
 });
});
但它只会影响页面上的所有blockquote帖子。如果我在blockquote之前再次添加.post,它的效果与我写的第一个案例相同


我做错了什么,你能帮我纠正吗?

一个潜在的纯css解决方案是使用“直接子项”
选择器:为
.blockquote>和
.blockquote>.blockquote>设置样式


[编辑:考虑到您希望它们交替出现,您可以-实际上不可能无限嵌套块引号,因此这不需要大量额外的键入:p。但我对jquery答案(@mohammadreza)投了更高的票,因为从技术上讲,这不太像黑客行为]

您的代码问题在这一行的循环中:

  if(index != 0) { $(element).addClass('inside'); }
类内添加到所有blockquote中,它的索引不等于零


你可以看到结果

我知道,
blockquote blockquote
,诸如此类,但代码太多了,我永远不知道会有多少嵌套的blockquote。试着用简单的语言或伪代码确切地解释一下你希望如何修改blockquote的样式,无论嵌套有多深。您是否希望更改是程序化的,即“我希望块引号具有淡红色字体,嵌套的块引号具有更红的字体,等等。”每个奇数块引号应具有不同的背景颜色和字体颜色,对于偶数块引号应具有相同的背景颜色和字体颜色,基本上在两种样式之间交替。