-1

我正在尝试调用用户输入数组。

我对 Javascript 很陌生,但知道我需要以某种方式引用数组(它是我放置 ??? 的地方)。

<script> 
var arrayX =5; 
var arrayY =1; 
var array=new Array(arrayX); 
var planetIndex=0; 

for (x=0; x<array.length; x++) 
{array [x] = new Array(arrayY);} 

function insert(val1){ 
    array[planetIndex][0]=val1; 
    planetIndex++; 
    document.getElementById('name').value = ''; };

function worldChange() {
        var newplanet = ????????????
        var whichWorld = Math.floor(Math.random()*newplanet.length); 
        return planetIndex[whichWorld];

        var planets = document.getElementsByClassName("world-name")
              for (var i=0; i < planets.length; i++) {
                planets[i].innerHTML = worldChange();};
        };

</script>
<body> 
   <div>  
    <form> 
              <input type="integer" id="name"/>
            <input type="button" value="Add Planets" onclick="insert   (this.form.name.value);"/> 
        </form>

        <input type="button" value="See planet!" onClick="worldChange()" />
        <br> Hello <span class="world-name">Earth!</span><br /> 
</div>
</body>

我让脚本的两个元素在我的网站上完美运行,所以每次有人点击一个按钮时,它都会改变故事中的人物。但是正如你所看到的,如果从我创建的数组中提取。我想从用户创建的数组中提取数据,以便他们可以输入自己的姓名列表。

所以这个脚本工作正常:

function newGuy() {
        var guys = new Array ("Jeff", "Mike", "George", "Harold");
        var whichGuy = Math.floor(Math.random()*guys.length); 
        return guys[whichGuy];}

var guy = document.getElementsByClassName("guy")
     for (var i=0; i < guy.length; i++) {
        guy[i].innerHTML = newGuy();}

这个脚本单独工作:

var arrayX =5; 
var arrayY =1; 
var array=new Array(arrayX); 
var guyIndex=0; 

for (x=0; x<array.length; x++) 
{array [x] = new Array(arrayY);} 

function insert(val1){ 
    array[guyIndex][0]=val1; 
    guyIndex++; 
    document.getElementById('name').value = ''; };

只是对如何将它们放在一起感到困惑。

4

1 回答 1

0

您的脚本存在很多问题,但为了让您了解如何使其工作:

var planets = [];
// define how many planets there will be initially
var initialLength = 5;

// add the initital planets
for (x = 0; x < initialLength; x++) {
    planets.push("planet" + x);
}

function insert() {
        var planetToInsert = document.getElementById('name').value;
    if (planetToInsert) {
        // add the input to the array of planets
        planets.push(planetToInsert);
        document.getElementById('name').value = '';
    } else {
        alert("please enter a value");
    }
}


function worldChange() {
    // randomly pick an index
    var whichWorld = Math.floor(Math.random() * planets.length);
    document.getElementById('world-name').innerHTML = planets[whichWorld];
}

工作样本在这里

对于在您的代码中查找问题,jsFiddle 可以提供极好的帮助。运行 JSlint 查找基本错误,将警报作为糟糕的 mans 调试。

对于一本好的 javascript 书,我会推荐javascript 模式

于 2012-08-10T21:00:41.610 回答