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");
}
}
});
答案 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 attr
,id=card
标记的子代。
这引用了:
<anytag id=56><img ...>
实际上,请参考上面的img
标记。
当然,如果隐藏引用的标记(.is(":hidden")
),display: hidden;
将返回true。