0

これは私が作業しているオブジェクトのコードのすべてですが、あなたが本当に私を助ける必要があるのは「画面に建物を作成する」部分だけだと思います.

私の目標は、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

4 に答える 4

1

ターゲット クラス名の配列を作成する

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

//then
var random = array[Math.floor(Math.random() * array.length)]
于 2013-09-29T13:40:02.190 に答える
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();
}
于 2013-09-29T13:40:09.417 に答える
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>');
于 2013-09-29T13:41:37.847 に答える
0

次のようなものを使用できます

i = parseInt(Math.random() * 4)

クラスの配列の配列インデックスを生成します。

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

または整数を文字列に変換し、それを定数文字列に追加します。

obj.className = "myClass" + i.toString().
于 2013-09-29T13:43:45.947 に答える