我正在尝试使用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]];
}
});
我个人不喜欢第二种方法,因为如果搜索的名称以
x
或y
开头,所以如果以这些词开头但目的不同的输入较多,则可能会导致错误,我建议第一种方法使用特定输入的类。关于javascript - 使用文本框中的值更新javascript数组的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23474586/