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。也就是说,将字符串放在一起(称为连接)。它们用于制作一个 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'),但更有效。

于 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 回答