如何更改 $(this) 子级的 css
我有一个搜索结果页面,每个结果都有一个图标,用于将每个结果添加到一个组中(在页面上以隐藏的 UL 元素列出:display:none;)。
现在它可以工作...但是当我单击一个结果列表的图标时...UL 出现在每个结果下方。
我需要它只显示我单击图标的结果列表...不是所有列表...
目前的加载代码是这样的:
$("a.quicklist, a[href=#newgrp]").toggle(
function(){
$("ul.quicklist_menu").css('display','block');
$(this).addClass("current");
},
function(){
$("ul.quicklist_menu").css('display','none');
$(this).removeClass("current");
});
我尝试将其更改为这样:
$("a.quicklist, a[href=#newgrp]").toggle(
function(){
$(this).children("ul.quicklist_menu").css('display','block');
$(this).addClass("current");
},
function(){
$(this).children("ul.quicklist_menu").css('display','none');
$(this).removeClass("current");
});
但是,是的..图标突出显示为“当前”或活动,但 UL 未出现...
任何帮助将不胜感激。
面向对象。对不起!这是 HTML:
<li class='vcard'>
<a href='profile.php?id=1288'><img class='user-photo' src='profile_images/sq_avatar.png' alt='Paul Dietzel' /></a>
<div class='user-info'>
<a class='fn url name' href='profile.php?id=1288'>Paul Dietzel</a>
<ul class='attributes'>
<li class='adr'><span class='locality'>Los Angeles</span>, <abbr class='region' title='California'>CA</abbr></li>
</ul>
</div>
<ul class='options'>
<li><a class='view-profile' href='profile.php?id=1288'>View profile</a></li>
<li><abbr title="Add/Remove Favorite"><button class="favorite ICON" id="1288">Remove Favorite</button></abbr></li>
<li><a class='add-to-group' href='#newgrp'>Add to group</a></li>
<ul class="quicklist_menu"><li><a href='#addgrp' id='1147' rel='1988'>Test 3</a></li>
<li><a href='#addgrp' id='1147' rel='1989'>Test 4</a></li>
<li><a href='#addgrp' id='1147' rel='1990'>Test 5</a></li>
<li><a href='#addgrp' id='1147' rel='1991'>Test 7</a></li>
<li><a href='#addgrp' id='1147' rel='1129'>Lou Herthum Acting Class</a></li>
<li><a href='#addgrp' id='1147' rel='1967'>test group</a></li>
<li class="mgrp"><a href="groups.php#newgrp">Manage Groups »</a></li>
</ul>
</ul>
</li>
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您需要通过将
移动为锚点的同级来更正标记,而不是在
之外。
但在内部(不能是
的子级,它是无效的 HTML)。像这样:
然后你可以像这样使用
.next()
:这使用
.show()
和.hide()
快捷方式也可以应用显示。或者,您可以使用.click()
来切换使用.toggleClass()
和.toggle()
,如下所示:You need to correct your markup by moving that
<ul>
to be a sibling of the anchor, not outside the<li></li>
but inside (<ul>
can't be a child of a<ul>
, it's invalid HTML). Like this:Then you can use
.next()
like this:This uses the
.show()
and.hide()
shortcuts to apply the display as well. Alternatively, you can use.click()
to toggle using.toggleClass()
and.toggle()
, like this:使用
.closest()
和.next()
或者您也可以尝试这样,
use
.closest()
and.next()
or you may also try like this,