我试图通过一些有效的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() + ',';
});
这很简单我敢肯定,但我认为我的大脑有点油腻:(
答案 0 :(得分:4)
你的vars似乎不是全球性的。它们必须在任何功能之外声明。除此之外,您无法向对象添加任何内容({}
)。使用字符串或数组:
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() + ',';
});