0

JavaScript初心者。基本だけ習ってきました。JavaScript でゲームを作成しています。しかし、この「img」の意味がわかりません。コード内で何度も使用されています。そして、これは私を混乱させています。私を助けてください。

$("#card div").click(function() {
    id = $(this).attr("id");
    if ($("#"+id+" img").is(":hidden")) {
        $("#"+id+" img").fadeIn('slow');
        if (imageopen == "") {
            showimg = id;
            imageopen = $("#"+id+" img").attr("src");
        }
    }
});
4

4 に答える 4

2

これは悪いコードです。

id = $(this).attr("id");
if ($("#"+id+" img").is(":hidden"))

これは、idクリックされた要素の を取得することを意味します。idこれが string であると想像してみましょうfoobar。次に、最終的に のような文字列を作成します#foobar img。つまり、文字列が結合されます (連結と呼ばれます)。imgこれらは、内の要素を検索する jQuery セレクターを作成するために使用されます#foobar

これは悪い方法です。簡単な方法は、jQuery のfindメソッドを使用することです。

var img = $(this).find('img');
if (img.is(':hidden')) {
    img.fadeIn('slow');

    // etc
}

$(this).attr('id')それは常に悪い考えであることも指摘する価値があります。もちろん、実際に行っていることを行うために値は必要ありませんidが、これは将来の参照に役立ちます。thisクリックされた要素への参照です。idを実行すると、要素のプロパティにアクセスできますthis.id。とまったく同じように返されます$(this).attr('id')が、より効率的です。

于 2013-11-13T13:04:55.240 に答える
0

img<img src="" alt=""/>DOM要素に含まれるHTMLタグです#id

于 2013-11-13T13:03:38.203 に答える
0

$("#"+id+" img")<img>コンテナタグ内のタグをIDで検索していることを意味します#id

于 2013-11-13T13:05:06.117 に答える
0
$("#"+id+" img")

は:

$("#56 img")

ここで、56 はid attr任意のタグの であり、タグの子ですid=card

そして、これは次を参照しています:

<anytag id=56><img ...>

実際には、img上記のタグを参照します。

もちろん、.is(":hidden")参照されたタグが非表示 ( display: hidden;) の場合は true を返します。

于 2013-11-13T13:07:37.560 に答える