我有一个定制的手风琴菜单,每个可扩展的UL (toggle_action)旁边都有+链接来展开它的子菜单(div_toggle)。对于活动者
发布于 2013-02-20 01:48:49
按照html嵌套的方式,它永远不会捕获<img>标记,因为它不被认为是active类<img>标记的父级。
您应该考虑最明确地改变HTML的输出方式。
但是,这里有一个解决您的问题的解决方案,目前您的html是嵌套的。
$(".active").parents(".div_toggle").prev("h3:first").children(":first").addClass("plus");
$('h3.toggle_action img').each(function(){
if ($(this).attr('src') && $(this).hasClass('plus') && $(this).attr('src').indexOf('plus.gif') > 0)
{
var imgSrc = $(this).attr('src').replace('plus.gif','minus.gif');
$(this).attr('src', imgSrc);
}
});好的,这样做的是,它捕获"active" parents <h3>子<img>并向它添加一个名为"plus"的类,并在遍历<h3 class="toggle_action"><img>标记时使用这个类,确保抓取带有plus作为类的img标记,并将其他类更改为minus.gif映像。
希望这能帮到你。如果是的话,把它标记为你的答案。
发布于 2013-02-20 01:24:16
img标签不是a标签的父母,他们是兄弟姐妹。您希望使用.prev()而不是.parents()。
如果不建议使用attr,则应该使用prop。你不需要使用replace,你只需要做prop('src', 'minus.gif')
https://stackoverflow.com/questions/14970623
复制相似问题