猿问

动态设置全局 JS 变量

我想知道如何动态设置 JS 值。为了更好地理解我要完成的工作,这是一个 php 示例:


$first;

$second;

$third;


$my_array = ('first' => 'val_1','second' => 'val_2','third' => 'val_3');

foreach ($my_array as $key => $value){

  $$key = $value;

}

假设您有大量具有 html 形式的唯一 ID 的输入框,并且您想使用 jquery 或 js 将 id 作为全局变量,这时我有点困惑如何从每个陈述。


我想通过js识别的html类型。


<input id='first' value='val_1'>

<input id='second' value='val_2'>

<input id='third' value='val_3'>

JS/jQuery 代码


var first;

var second;

var third;


$('input').each(function(){

  var item_id = $(this).attr('id');

  var item_value = $(this).attr('value');


  /* now what... */

});

在 php 示例中,额外的美元符号使美元表示我想填充一个变量,该变量的名称类似于存储在 $key 中的变量。我想知道是否可以使用 JS 或 jquery 完成相同的操作。


目的是仅通过向 HTML 表单添加输入来管理值的数量,而无需大量更改 JS 代码。


Qyouu
浏览 137回答 2
2回答

慕田峪7331174

这不是 PHP 或 JavaScript 中好的编程风格。只需使用数组代替:var values = [];$('input').each(function() {&nbsp; var item_id = $(this).attr('id');&nbsp; var item_value = $(this).attr('value');&nbsp; values[item_id] = item_value;});console.log('first = ' + values['first'] + ', second = ' + values['second']);<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script><label for="first">First: </label><input id="first" type="text" value="hello" /><label for="second">Second: </label><input id="second" type="text" value="world!" /><label for="third">Third: </label><input id="third" type="text" />

杨魅力

你可以使用eval函数var first;var second;var third;$('input').each(function(){&nbsp; var item_id = $(this).attr('id');&nbsp; var item_value = $(this).attr('value');&nbsp; eval(item_id+'='+item_value);});例如var v1 = 'first';var v2 = 'second';var val1 = 10;var val2 = 20;var first;var second;eval(v1+'='+val1);eval(v2+'='+val2);console.log('first='+first,'second='+second);
随时随地看视频慕课网APP
我要回答