2

我正在使用该功能has()来检查li标签是否ul在里面。如果有ul标签,li我将添加一些 CSS 属性,我的代码li在渲染页面时创建标签时运行良好,但当我使用 Ajax 并$.each()创建这些li项目时,我的代码has()不起作用。

jQuery代码是:

$('.innerItems li ul li').has('ul').css({'background-image':'url(images/arrow.png)',
                                         'background-position':'2px center',
                                         'background-repeat':'no-repeat'}); 
4

3 回答 3

2

改为使用.find.has只是为了测试它是否具有ul.

$('.innerItems li ul li').find('ul').css({'background-image':'url(images/arrow.png)',
                                         'background-position':'2px center',
                                         'background-repeat':'no-repeat'}); 

编辑: 似乎你想要这个:

$('.innerItems li ul li:has(ul)').css({'background-image':'url(images/arrow.png)',
                                         'background-position':'2px center',
                                         'background-repeat':'no-repeat'}); 
于 2012-06-05T08:31:44.950 回答
0

不要忘记写下这一行:

$('.innerItems li ul li').has('ul').css({'background-image':'url(images/arrow.png)',
                                     'background-position':'2px center',
                                     'background-repeat':'no-repeat'}); 

在您$.each创建<li>项目之前。

于 2012-06-05T08:35:08.080 回答
0

您可以尝试选择 UL,然后返回最近的 LI 并应用样式。对我来说似乎更合乎逻辑:

$('.innerItems li ul li ul').closest('li').css( //...

使用替代解决方案.find()

$('.innerItems li ul li').find('ul').closest('li').css( //...

但它们基本上是平等的。

于 2012-06-05T08:36:12.510 回答