如何在列表中,在.js文件中创建列表,然后使用jquery / javascript选择随机列表项?

时间:2012-12-04 10:52:08

标签: javascript jquery xhtml

(在.js文件中编码,而不是在.html体内编码)

所以,如果有一个列表:category = ['a', 'b', 'c'];

并且每个列表项都有不同的选择:

category[0] = ['long textstring1', 'longtextstring2', 'longtextstring3'];
category[1] = ['long textstring1', 'longtextstring2', 'longtextstring3'];
category[2] = ['long textstring1', 'longtextstring2', 'longtextstring3'];

首先:如何在我的.js文件的列表中编写列表? (猜测你不能像<ul><li>那样在身体里做,等等)

第二:我如何随机生成,a,b或c,然后是该列表中的随机列表项?

当我有我生成的选择时,我非常想在屏幕上打印出来。

/ W

2 个答案:

答案 0 :(得分:0)

您可以像上面一样使用多维数组在列表中创建列表。但是,如果您想要像 - &gt;这样的映射[list],你需要使用一个对象:

{"a": ['long textstring1'], "b": ['long textstring1']}

如果使用数组而不是对象来获取随机属性,实际上更容易。例如:

var category = [['ls1', 'ls2'], ['ls1', 'ls2']];

然后你可以使用以下方法获得随机子列表:

var rand = category[Math.floor(Math.random() * (category.length + 1)) + min];

There are several answers on how to get a random property from a JS object

答案 1 :(得分:0)

这可能会帮助您解决问题的第一部分,根据您的输入生成列表:

var category = ['a', 'b', 'c'];
category[0] = ['long textstring1', 'longtextstring2', 'longtextstring3'];
category[1] = ['long textstring1', 'longtextstring2', 'longtextstring3'];
category[2] = ['long textstring1', 'longtextstring2', 'longtextstring3'];

var container = document.getElementById("container");
for(var i = 0; i < category.length; i++)
{
    var list = document.createElement("ul");
    for(var j = 0; j < category[i].length; j++)
    {
        var listItem = document.createElement("li");
        var txt = document.createTextNode(category[i][j]);
        listItem.appendChild(txt);
        list.appendChild(listItem);
    }
    container.appendChild(list);
}

JSFiddle