将随机类添加到附加div? (jquery的)

时间:2013-09-29 13:34:13

标签: javascript jquery

这是我正在使用的对象的所有代码,但我认为它只是“你在屏幕上创建”部分,你真的需要帮助我。

我的目标是把它放在哪里而不是说class =“House houseRed”,它说类似于class =“House +'randomClass'”等,而且该变量包含我的其他类名(我总共有5个)。 这是我正在进行的迷你游戏,我需要根据他们的班级名称产生不同外观的建筑物。

//CREATE BUILDING IN MEMOMORY
    function CreateHouseInMemory() {
        //GET VALUES
        var sAddress = $("#HouseAddress").val();
        var sUniqueId = getUniqueId();
        var iMaxResidents = $('input[name=housemaxresidents]').val();

        var oHouse = {
            sType: "House",
            sAddress: sAddress,
            sId: sUniqueId,
            iMaxResidents: iMaxResidents,
            Residents: aResidents = [],
            babyInHouse: false
        };
        oCity.aBuildings.push(oHouse);
        console.dir(oCity.aBuildings);
        return oHouse;
    }


//CREATE BUILDING IN SCREEN
    function CreateHouseInScreen(oHouse)
    {
        $("#City").append('<div id="' + oHouse.sId + '" class="House houseRed" title="' + oHouse.sAddress + '"></div>');
        $(".House").draggable();
        $(".House").droppable();
    }
    ;


//SPAWN BUILDING
    $("#BtnCreateHouse").click(function() {

        var oHouse = CreateHouseInMemory();
        CreateHouseInScreen(oHouse);

    });

4 个答案:

答案 0 :(得分:1)

创建目标类名称数组

var array = ['one', 'two','three','four', 'five'];

//then
var random = array[Math.floor(Math.random() * array.length)]

答案 1 :(得分:1)

您可以通过以下方式随机添加类:

function CreateHouseInScreen(oHouse)
{
    var classes = ['houseRed', 'houseBlue', 'houseGreen'];
    var randomIndex = Math.floor(Math.random() * classes.length);
    var div = $('<div id="' + oHouse.sId + '" class="House" title="' + oHouse.sAddress + '"></div>');
    div.addClass(classes[randomIndex]);
    $("#City").append(div);
    $(".House").draggable();
    $(".House").droppable();
}

答案 2 :(得分:1)

像这样的东西

var classesnames = ['toto', 'titi', 'tata', 'tutu'],
    classrandom = classesnames[Math.floor(Math.random() * classesnames.length)];

$("#City").append('<div id="' + oHouse.sId + '" class="House '+ classrandom +'" title="' + oHouse.sAddress + '"></div>');

答案 3 :(得分:0)

您可以使用类似

的内容
i = parseInt(Math.random() * 4)

为类数组生成数组索引,例如

classArray = ['class1', 'class2', 'class3', 'class4', 'class5']
obj.className = classArray[i]

或将整数转换为字符串并将其附加到常量字符串,例如

obj.className = "myClass" + i.toString().