Jquery 选择ul和奇数li

Jquery 选择ul和奇数li,jquery,html,list,html-lists,Jquery,Html,List,Html Lists,对于一个动态网站,我试图创建一个项目列表,其中最后一个li if odd是100%宽的 我让这个工作,我的问题是,下一个UL也这样做,而最后一个li并不奇怪 基本上:如果列表中的最后一个LI为奇数,则100%为零 我很难解释自己,所以希望我的小提琴更有意义: var target = $( "ul.odd-list > li:last-child"); if ( target.is(":nth-child(odd)" ) ) { target.css( "width", "98

对于一个动态网站,我试图创建一个项目列表,其中最后一个li if odd是100%宽的

我让这个工作,我的问题是,下一个UL也这样做,而最后一个li并不奇怪

基本上:如果列表中的最后一个LI为奇数,则100%为零

我很难解释自己,所以希望我的小提琴更有意义:

var target = $( "ul.odd-list > li:last-child");
if ( target.is(":nth-child(odd)"  ) ) { 
    target.css( "width", "98%");
}
提前谢谢


ps,我知道我可以从第二个ul中删除该类。但如果决定添加更多li,则必须存在该li。

您需要单独测试每个li,因为如果任何一个匹配元素满足以下条件,则将返回true:

JSFIddle:

您可以将其简化为单个选择器:

$("ul.odd-list > li:last-child:nth-child(odd)").css("width", "98%");

jsFIDLE:

您的默认宽度看起来是48%宽度。让我们保持原样,并在需要时应用98%的宽度

在css中:

li {
   width : 48%;
 }
li:last-child:nth-child(odd) {
   width: 98%;
}
如果确实要使用jquery设置最后一个宽度:

$('ul.odd-list > li:last-child:nth-child(odd)').css('width', '98%')

注意:TrueBlueAussie的答案也是正确的,但我不喜欢在不需要的地方使用“if”。

为什么要在jQuery中这样做而不是纯css?我不希望每个:最后一个孩子都是100%。只有那些奇怪的。如果项目是偶数,则无需执行任何操作。jQuery是我最合乎逻辑的选择。如果你能告诉我如何使用css,请让我知道!你是说:ul.odd-list>li:nth childodd:last child{width:98%;}不起作用?编辑:我看公认的答案是一样的;“我没有这么说,因为我从来没有试过:但它确实有效,所以谢谢你。”@FreekvanderHorst很高兴你这么问,现在你学到了一些新东西!:我不知道您可以在一个元素中添加:last child和:nth。所以,谢谢你。请重新参考。我也不喜欢if,因此第二个版本:@FreekvanderHorst这在使用:hover时特别有用;
$('ul.odd-list > li:last-child:nth-child(odd)').css('width', '98%')