2

これは簡単だと思いました。クリックしたリンクの子画像に特定の src 属性があるかどうかをJSが検出するだけです。はいの場合、1 つのことを行います。いいえの場合は、この別のことを行います。しかし、何らかの理由で、クリック イベントは if/else 条件を完全に無視しています。.children()条件が true であるかのようにセレクターとイベントが引き続き実行される場合、必要なナンセンスを配置できます。Jqueryはよくわからないので困っています。どんな助けでも大歓迎です。

$('.addcomp').click(function(){
                if($(this).children('img[src="add.png"]')){
                    $(this).parents("tr").find('.compcost').addClass('cost').end().find('td:last-child,td:nth-child(3)').addClass('addcompbg');
                    $(this).children("img").attr("src","forbidden.png");
                }
                else if ($(this).children('img[src="forbidden.png"]'))
                {$(this).parents("tr").find('.compcost').removeClass('cost').end().find('td:last-child,td:nth-child(3)').removeClass('addcompbg');
                    $(this).children("img").attr("src","add.png");
                    }
            });
4

1 に答える 1

8

$(this).children('img[src="add.png"]').length代わりに使用してください。$()は、一致するかどうかに関係なく、常にtruejQuery オブジェクトを返すため、常に のように評価されますif

于 2012-08-23T20:38:39.927 に答える