Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击父元素时如何切换两个图像?_Javascript_Jquery - Fatal编程技术网

Javascript 单击父元素时如何切换两个图像?

Javascript 单击父元素时如何切换两个图像?,javascript,jquery,Javascript,Jquery,我需要通过单击父a标记来切换两个图像 这是我的JavaScript $("#VerColMenu > li > a").click(function() { var src = ($(this).children()[0].attr('src') === 'img/plus.png') ? 'img/minus.png' : 'img/plus.png'; $(this).children()[0].attr('src', src); }); 但是这里

我需要通过单击父a标记来切换两个图像

这是我的JavaScript

$("#VerColMenu > li > a").click(function() {
    var src = ($(this).children()[0].attr('src') === 'img/plus.png')
    ? 'img/minus.png'
    : 'img/plus.png';
   $(this).children()[0].attr('src', src);
});

但是这里什么也没有发生。

attr
是一个jQuery方法而不是DOM方法,所以您不需要
[0]
。试试这个:

$('#VerColMenu a').click(function(){
  var $img = $(this).children();
  var src = $img.attr('src');
  $img.attr('src', src === 'img/plus.png' ? 'img/minus.png' : 'img/plus.png');
});

attr
是jQuery方法而不是DOM方法,因此您不需要
[0]
。试试这个:

$('#VerColMenu a').click(function(){
  var $img = $(this).children();
  var src = $img.attr('src');
  $img.attr('src', src === 'img/plus.png' ? 'img/minus.png' : 'img/plus.png');
});
首先
.children()[0]

将子对象作为DOM对象而不是jQuery对象获取

And.attr()只能用于jQuery对象

尝试:eq选择器,而不是.children()

我假设
.children()[0]
您指的是li中的第一个图像, 因此,使用
img:eq(0)
选择li中的第一个图像元素。

首先
.children()[0]

将子对象作为DOM对象而不是jQuery对象获取

And.attr()只能用于jQuery对象

尝试:eq选择器,而不是.children()

我假设
.children()[0]
您指的是li中的第一个图像,
因此,使用
img:eq(0)
将选择li中的第一个图像元素。

[0]
附加到jQuery对象将检索隐藏的DOM对象。除了上面/下面的答案,您还可以使用获取jQuery数组集中的第一个元素:

$("#VerColMenu > li > a").click(function() {
    var src = ($(this).children().first().attr('src') === 'img/plus.png') ? 'img/minus.png' : 'img/plus.png';
    $(this).children().first().attr('src', src);
});


当然,这必须包装在
$(document).ready()
或类似的东西中。

[0]
附加到jQuery对象会检索隐藏的DOM对象。除了上面/下面的答案,您还可以使用获取jQuery数组集中的第一个元素:

$("#VerColMenu > li > a").click(function() {
    var src = ($(this).children().first().attr('src') === 'img/plus.png') ? 'img/minus.png' : 'img/plus.png';
    $(this).children().first().attr('src', src);
});


当然,这必须用
$(document.ready()
或类似的东西包装起来。

使用此代码可以帮助您

 function toggle(a) {
        if (isloaded) {
            document.getElementById(a).src=toggleimage[i_image];
        }
        i_image++
        if (i_image>1) {i_image=0}
    }

 <a href="javascript:toggle()"><img name="togglepicture" src="p1.gif" border="0"></a>
功能切换(a){
如果(已加载){
document.getElementById(a).src=toggleimage[i_image];
}
i_图像++
如果(i_image>1){i_image=0}
}

使用此代码它可以帮助您

 function toggle(a) {
        if (isloaded) {
            document.getElementById(a).src=toggleimage[i_image];
        }
        i_image++
        if (i_image>1) {i_image=0}
    }

 <a href="javascript:toggle()"><img name="togglepicture" src="p1.gif" border="0"></a>
功能切换(a){
如果(已加载){
document.getElementById(a).src=toggleimage[i_image];
}
i_图像++
如果(i_image>1){i_image=0}
}

您是否已将此脚本放置在
$(document).ready()中?
?您可以尝试仅使用calss名称,而不是检查img src。您可以提供html吗?您是否已将此脚本放入
$(document).ready()
?您可以尝试仅使用calss名称,而不是检查img src。你能提供你的html吗?