我有两个版本的od代码, 这个不起作用:
$('#customMenu > li > a').click(function()
{
if ($(this).attr('class') != 'active')
{
$('#customMenu li img').each(function() {
$(this).src='/_layouts/GAzotyBranding/Images/menuUnselected.png';
});
var image = this.previousSibling;
image.attr('src','/_layouts/GAzotyBranding/Images/menuSelected.png');
$('#customMenu li ul').slideUp();
$(this).next().slideToggle();
$('#customMenu li a').removeClass('active');
$(this).addClass('active');
}
});
这个工作正常:
$('#customMenu > li > a').click(function()
{
if ($(this).attr('class') != 'active')
{
$('#customMenu li img').each(function() {
$(this).attr('src','/_layouts/GAzotyBranding/Images/menuUnselected.png');
});
var image = this.previousSibling;
image.src='/_layouts/GAzotyBranding/Images/menuSelected.png';
$('#customMenu li ul').slideUp();
$(this).next().slideToggle();
$('#customMenu li a').removeClass('active');
$(this).addClass('active');
}
});
唯一的区别在于
$('#customMenu li img').each(function() {
$(this).attr('src','/_layouts/GAzotyBranding/Images/menuUnselected.png');
我的问题很简单,为什么第一个不起作用?
答案 0 :(得分:1)
因为在这两种情况下你都使用jQuery包装器包装原始DOM节点,所以你只需要在非DOM对象上设置一些属性。
要完成第一项工作,您需要this.src = '...';
,因为this
将指向原始DOM元素。
答案 1 :(得分:0)
因为在jQuery对象上设置src
属性根本不起作用。它没有明确的行为,也没有注意它。 jQuery对象不是DOM对象。
使用this.src
代替$(this).src
会有效。