如何在body标签上随机化class的值?

时间:2014-07-09 16:15:51

标签: javascript html document-body

我有一个包含一些字符串的数组,我选择一个随机数组。我需要<body class="MY_STRING">上的这个值。我怎么能这样做?

我尝试过类似的事情:

document.write('<body class="' + my_string + '">')

但没有用。

更新 这个问题是错误的。我怀疑的不是随机因素。这个问题解释得更好(并且包含了我需要的答案):

Setting document.body.className as a variable

我不知道如何解释这个问题。 Ty的答案。

5 个答案:

答案 0 :(得分:3)

请勿使用document.write覆盖DOM。 使用:

document.body.setAttribute('class',my_string);

答案 1 :(得分:2)

function getRandomInt(min, max) {
    return Math.floor(Math.random() * (max - min + 1)) + min;
}

var classes = ['green', 'red', 'blue', 'black', 'purple'],
    randomClass = classes[getRandomInt(0, classes.length - 1)];

document.body.className = randomClass;

小提琴:http://jsfiddle.net/PQ9J3/2/

答案 2 :(得分:1)

声明您的类列表数组。我们将随机选择一个班级。

var classList = ["first", "second", "third", "fourth"];

然后获取该数组的随机密钥:

var randomKey = Math.floor(Math.random() * classList.length);

现在,选择tag并从classList数组中添加随机类属性:

var bodyTag = document.getElementsByTagName("body");
bodyTag[0].setAttribute("class", classList[randomKey]);

JSFiddle

答案 3 :(得分:0)

您可以使用脚本标记在事后更改类值。

<body id="layout">
   <div>stuff</div>

   <script type="text/javascript>
       document.getElementById("layout").className = "my_string";
   </script>
</body>

答案 4 :(得分:0)

 var random = Math.floor(Math.random() * MAX) + MIN;
 document.body.className = "body" + random;

将上述代码放在您想要的任何地方。必须在DOM加载之后。

创建名称为body1,body6等的CSS类...(取决于你的MIN和MAX)