JQuery/JavaScript:如果元素类有img子元素,则替换它
我试图替换JQuery/JavaScript:如果元素类有img子元素,则替换它,javascript,jquery,html,Javascript,Jquery,Html,我试图替换.nav li的类Col1,如果它有一个带有image的子元素,或者一个带有classNavItemHolder的div,并将该类更改为Col2 <ul class="nav"> <li class="Col1"> <a class="lvl1 parent" href="#/">Option1</a> <ul> <li>SubOption1</li&g
.nav li
的类Col1
,如果它有一个带有image的子元素,或者一个带有classNavItemHolder
的div,并将该类更改为Col2
<ul class="nav">
<li class="Col1">
<a class="lvl1 parent" href="#/">Option1</a>
<ul>
<li>SubOption1</li>
</ul>
</li>
<li class="Col1">
<a class="lvl1 parent" href="#">Option2</a>
<ul>
<li>
<div class="NavItemHolder">
<div class="NavItemImage">
<a href="#">
<img src="/menu.jpg"></a>
</div>
<div class="NavItemDesc">
<a href="#">SubOption2</a>
</div>
</div>
</li>
</ul>
</li>
</ul>
但是这也将类Col2添加到内部li项中,因为初始选择器中有空格,它将查找
.nav
的后代li
。对于直接子对象,请使用以下选项:
$('.nav>li:has(img)').removeClass('Col1').addClass('Col2')
由于初始选择器中有空格,它将查找
li
中的后代.nav
。对于直接子对象,请使用以下选项:
$('.nav>li:has(img)').removeClass('Col1').addClass('Col2')
只需检查它的工作原理:find()$('.nav li')。find('img')。removeClass('Col1')。addClass('Col2')。只需检查它的工作原理:find()$('.nav li')。find('img')。removeClass('Col1')。addClass('Col2')。谢谢詹姆斯,我忽略了这一点。谢谢詹姆斯,我忽略了。