我正在尝试使用JavaScript使用文本框中的值更新数组“ plotMe”的值。使用pop()可能有帮助,但不确定我是否需要for语句,例如
for (var i=0; i<array.length; i++){ do something here? };我只是不知道该怎么做。
任何帮助,将不胜感激。

var plotMe1= [[1,2], [3,4], [5,6]];

<form>
x1: <input type="text" name="x1"/>
y1: <input type="text" name="y1"/><br/>
x2: <input type="text" name="x2"/>
y2: <input type="text" name="y2"/><br/>
x3: <input type="text" name="x3"/>
y3: <input type="text" name="y3"/><br/>
</form>

最佳答案

如果您可以稍微更改HTML,请尝试以下操作-

var plotMe1= [[1,2], [3,4], [5,6]];

<form>
x1: <input type="text" class="x" name="x1"/>
y1: <input type="text" class="y" name="y1"/><br/>
x2: <input type="text" class="x" name="x2"/>
y2: <input type="text" class="y" name="y2"/><br/>
x3: <input type="text" class="x" name="x3"/>
y3: <input type="text" class="y" name="y3"/><br/>
</form>


我正在使用jQuery,所以代码是-

$("input").on('keyup', function(){
    var x = $.map($("input.x").toArray(), function(e){
         return $(e).val();
    });
    var y = $.map($("input.y").toArray(), function(e){
         return $(e).val();
    });
    plotMe1 = [];
    for(var i = 0; i < x.length; i++){
         plotMe1[i] = [x[i], y[i]];
    }
});


在这里,您也可以根据需要使用更多的输入。我还没有对小提琴进行测试,但是应该可以。

但是,如果您不能随意更改HTML,请尝试以下代码-

$("input").on('keyup', function(){
        var x = $.map($("input[name^='x']").toArray(), function(e){
             return $(e).val();
        });
        var y = $.map($("input[name^='y']").toArray(), function(e){
             return $(e).val();
        });
        plotMe1 = [];
        for(var i = 0; i < x.length; i++){
             plotMe1[i] = [x[i], y[i]];
        }
    });


我个人不喜欢第二种方法,因为如果搜索的名称以xy开头,所以如果以这些词开头但目的不同的输入较多,则可能会导致错误,我建议第一种方法使用特定输入的类。

关于javascript - 使用文本框中的值更新javascript数组的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23474586/

10-12 03:52
查看更多