Javascript 带有事件的函数的jQuery公共因子
我有这个密码:Javascript 带有事件的函数的jQuery公共因子,javascript,jquery,html,Javascript,Jquery,Html,我有这个密码: $(document).ready( function(){ var gold; var silver; var copper; $("#gold").change(function(){ gold = $(this).val(); }); $("#silver").change(function(){ silver = $(this).val(); }); $("#copper")
$(document).ready( function(){
var gold;
var silver;
var copper;
$("#gold").change(function(){
gold = $(this).val();
});
$("#silver").change(function(){
silver = $(this).val();
});
$("#copper").change(function(){
copper = $(this).val();
});
});
只要文本字段更改,它就会更新变量,这是html:
<input type="text" id="gold">
<input type="text" id="silver">
<input type="text" id="copper">
对于我得到的每个变量,当我有100多个变量时,我能做什么?我想避免在YR事件中一个接一个地获取元素
我试过这样的方法:
var gold = dynamicValue("gold");
function dynamicValue(element){
$("#" + element).change(function(){
return $(this).val();
});
}
但似乎不起作用 如果你觉得结构总是这样的话,我会推荐这样的东西
var values = {};
$('input').change(function(){
values[this.id] = this.value;
});
这样,它将创建一个对象,ID作为键,in输入值作为键值
values = {
gold: 'something',
copper: 'something',
silver: 'comething'
}
你随时都可以拿到
var gold = values.gold;
如果您得到未定义
,则表示输入尚未更改。下面的例子
var值={};
$('input').change(函数(){
values[this.id]=this.value;
$('div').text(JSON.stringify(values));//此行仅用于示例
});代码>
使用类并将id用作键
$(文档).ready(函数(){
var金属=
{金:空,银:空,铜:空}
$(“.inputs”).change(函数(){
金属[this.id]=$(this.val();
木材(金属);
});
});代码>
金
银
铜
HTML
<input type="text" class="metal-input" id="gold">
<input type="text" class="metal-input" id="silver">
<input type="text" class="metal-input" id="copper">
$(“input[type='text']”)。更改(function(){…应该可以为您完成所有工作。您也可以对每个元素使用一个类,例如:$(“.myClass”)。更改(function(){如果用户仅使用上下文菜单粘贴一些值会怎么样?input
event在这种情况下会更好:$('.metal input')。on('input',function(){…})
每当我使用var gold=values.gold;或数组中的任何值时,我都会感到很难过,因为它不起作用,没有定义……但是lazy警报(values.gold)工作得很好。嗯,可能不够具体。你必须在定义值的同一范围内。如果你在document.ready中定义值,你只能在那里使用它。
<input type="text" class="metal-input" id="gold">
<input type="text" class="metal-input" id="silver">
<input type="text" class="metal-input" id="copper">
var metals = {};
$('.metal-input').on('input', function() {
metals[this.id] = $(this).val();
console.log(metals);
});