对于每个帖子,每个blockquote里面都有不同的风格

时间:2014-07-19 17:56:24

标签: jquery css

Tumblr经常在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,它会像我写的第一个案例一样。

我做错了什么,你可以帮我吗?

2 个答案:

答案 0 :(得分:2)

潜在的纯粹css解决方案是使用"直接孩子" >选择器:为.blockquote > .blockquote.blockquote > .blockquote > .blockquote等设置样式 jsfiddle

[编辑:鉴于你希望它们交替出现,你可以do this - 实际上不可能无限地嵌套块引用,所以这不需要额外的输入:p。但我赞成了jquery的答案(@mohammadreza),因为它在技术上不那么糟糕了。

答案 1 :(得分:0)

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

  if(index != 0) { $(element).addClass('inside'); }

内部类添加到所有blockquote,它的索引不同于零......

你可以看到结果here