Html代码:<div class="global_module procatalog">
<h3>产品分类</h3>
<ul class="m-treeview">
<li class="m-expanded">
<span>衬衫</span>
<ul>
<li><span>短袖衬衫</span></li>
<li><span>长袖衬衫</span></li>
</ul>
</li>
<li class="m-expanded">
<span>卫衣</span>
<ul>
<li ><span>开襟卫衣</span></li>
<li ><span>套头卫衣</span></li>
</ul>
</li>
<li class="m-expanded">
<span>裤子</span>
<ul>
<li><span>休闲裤</span></li>
<li><span>免烫卡其裤</span></li>
<li><span>牛仔裤</span></li>
<li><span>短裤</span></li>
</ul>
</li>
   </ul>
<p class="module_up_down"><img src="images/down.gif" alt="" /></p>
</div>JS代码:
/*模块展开和关闭*/
$(function(){
 $(".module_up_down").toggle(function(){
var $self = $(this);
$self.prev().slideToggle(600,function(){
  $("img",$self).attr("src","images/up.gif");
});
 },function(){
var $self = $(this);
$self.prev().slideToggle(600,function(){
  $("img",$self).attr("src","images/down.gif");
});
 })
})为了实现如下效果:为了更改<p class="module_up_down"><img src="images/down.gif" alt="" /></p> 这里的img的src,
我感觉用这个选择器不恰当:$("img",$self).attr("src","images/down.gif"); 
应该用:$self.find("img").attr("src","images/down.gif"); 是不是呢?

解决方案 »

  1.   

    我感觉这么写是不对的: $("img",$self).attr("src","images/down.gif");这么写的目的是把(img元素和$self代表的元素)这两个元素的src属性赋值,
    之所以达到了$self.find("img").attr("src","images/down.gif")的效果。
    是因为jqery发现$self代表的元素没有src属性,所以忽略了$self。
      

  2.   

    http://bbs.csdn.net/topics/390425252
      

  3.   

    http://bbs.csdn.net/topics/390425252
      

  4.   


    那个帖子的回答是错误的:$("ancestor  descendant")这样是层次选择器,选择ancestor里所有的descendant(后代)元素,注意,他们之间并没有逗号,
    而这种$(selector1,selector2,...selectorn)是基本选择器,将每个选择器匹配的元素合并到一起返回。
      

  5.   

    "ancestor  descendant"是一个参数,那个是两个