0

親のタグをクリックして、2つの画像を切り替える必要があります。

これが私の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);
});

しかし、ここでは何も起こりません。

4

4 に答える 4

1

attrはDOMメソッドではなくjQueryメソッドであるため、は必要ありません[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');
});
于 2012-10-01T04:03:32.210 に答える
1

まず.children()[0]
、子をjQueryオブジェクトではなくDOMオブジェクトとして取得します。

また、.attr()はjQueryオブジェクトでのみ使用できます。

.children()の代わりに:eqセレクターを 試してください

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

私は.children()[0] あなたがli内の最初の画像を意味していると仮定しているので、これを使用img:eq(0) するとli内の最初の画像要素が選択されます。

于 2012-10-01T04:03:45.970 に答える
1

jQueryオブジェクトにアタッチ[0]すると、基になるDOMオブジェクトが取得されます。上記/下記の回答に加えて.first()、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()ます。

于 2012-10-01T04:09:53.743 に答える
0

このコードを使用すると、uに役立ちます

 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>
于 2012-10-01T05:38:59.683 に答える