if($(“#”id“img”)。is(“:hidden”))

时间:2013-11-13 13:02:08

标签: jquery

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 个答案:

答案 0 :(得分:2)

这是错误的代码。

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

这意味着获取被点击的元素的id。我们假设这个id是字符串foobar。然后我们构建一个最终看起来像#foobar img的字符串。也就是说,字符串被放在一起(它被称为连接)。它们用于创建jQuery选择器,该选择器在img中找到#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')完全相同,但效率更高。

答案 1 :(得分:0)

img是DOM元素<img src="" alt=""/>中包含的HTML标记#id

答案 2 :(得分:0)

$("#"+id+" img")表示您在容器标记内搜索标记<img>,标识为#id

答案 3 :(得分:0)

$("#"+id+" img")

是:

$("#56 img")

其中56是任何标记的id attrid=card标记的子代。

这引用了:

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

实际上,请参考上面的img标记。

当然,如果隐藏引用的标记(.is(":hidden")),display: hidden;将返回true。