在JQuery中从数组中检索“id”

时间:2014-04-01 00:41:33

标签: jquery arrays

我正在开发一款小型游戏,我在阵列中遇到了几个障碍:

obstacles = [ { id: '#car' }, { id: '#house' }, { id: '#door' }, ];

在我的代码的第二部分中,我有:

JQuery的:

 $('#alert').hide();
 for (index in obstacles) {

        object = $(obstacles[index]["id"]);


    obj_left = object.position().left + parseInt(object.css("margin-left"));
    obj_top = object.position().top + parseInt(object.css("margin-top"));



      if ((((posX > (obj_left - me.width() / 2)) && 
      (posX < (obj_left + object.width() + me.width() / 2)))) && 
     (posY > (obj_top - me.height() / 2)) && 
     (posY < (obj_top + object.height() + me.height() / 2))) {


            // Cannot walk 
            return false;
        }
    $('#alert').show(); // display error message 
    }
    // Can walk again
    return true && $('#alert').hide();   // hide error again                 
}

HTML:

<div id="alert">//...</div>
<div id="character"></div>
<div class="door" id="door"></div>
<div class="house" id="house"></div>
<div class="car" id="car"></div>

我测试了它,效果很好。 但是我没有显示每个障碍的警报,而是想要检索某个障碍的值(即:如果玩家遇到汽车,输出&#34;你打了一辆车!&#34;或者如果玩家打到房子,输出&#34;你可能不会输入&#34;)。

希望我能够直截了当地提供相当数量的代码。

编辑:这是我所遵循的教程的链接:http://blog.oscarliang.net/pokemon-online-game-theme-tutorial/

谢谢!

1 个答案:

答案 0 :(得分:1)

如果我理解正确,这将做你想做的事:

注意:当然,您需要包含jQuery才能正常工作

<script>
         obstacles = [ { id: 'car' }, { id: 'house' }, { id: 'door' }, ]
         $("div").on("click", function() {
             var found = false;
             var obj   = $(this).prop("id");
             for(i=0;i<obstacles.length;i++) {
                 if(obstacles[i].id == obj) {
                        found = true;                     
                 }
             }
             alert(found ? "You hit a " + obj + "!" : "You may not enter");
         });
</script>

<div id="car">Car</div>
<div id="house">house</div>
<div id="door">door</div>
<div id="bank">bank</div>