Javascript - 使用类名指定要赋予哪个变量的值
问题描述:
我试图用一些有效的Javascript来聪明点,但它让我头痛,无法搜索。Javascript - 使用类名指定要赋予哪个变量的值
我有一组输入在表中,每一个给定的类:
...
<tr>
<td><input name="name" type="text" class="markertitle"/></td>
<td><input name="desc" type="text" class="markerdescription"/></td>
<td><input name="address" type="text" class="markeraddress"/></td>
<td><input name="url" type="text" class="markerurl"/></td>
</tr>
...
我想利用这些类的值,使用它来指定给定的变量(其已经存在),然后将该输入的值(使用+ =)分配给该变量。
这是我想出,但没有喜悦:
var markertitle = {};
var markerdescription = {};
var markeraddress = {};
var markerurl = {};
$('#markermatrixadd input').each(function(){
var field = $(this).attr('class');
window[field] += $(this).val() + ',';
});
它死了简单的我敢肯定,但我认为我的大脑有点炸:(
答
你不要瓦尔“T似乎是全球性的他们必须任何函数之外声明除此之外,你不能为一个对象({}
)添加任何东西使用字符串或数组:。
var markertitle = ""
var markerdescription = ""
etc
function() ....
$('#markermatrixadd input').each(function(){
var field = $(this).attr('class');
window[field] += $(this).val() + ',';
});
或
var markertitle = []
var markerdescription = []
etc
function() ....
$('#markermatrixadd input').each(function(){
var field = $(this).attr('class');
window[field].push($(this).val())
});
更重要的是,摆脱window
,并使用一个单独的对象来存储所有的数据:
var data = {
markertitle: "",
markerdescription: ""
}
function() ....
$('#markermatrixadd input').each(function(){
var field = $(this).attr('class');
data[field] += $(this).val() + ',';
});
当心有多个类或类元素不匹配的变量。 – Stefan 2012-01-13 11:53:42