是否可以将html数据-属性注册为javascript变量的名称?
我所说的是这样的:
<form>
<input data-varName="test1" />
<input data-varName="test2" />
</form>
$('form').find('input').each(function() {
var $(this).attr('data-varName') = $(this).val();
});发布于 2016-07-21 23:25:09
一种选择是将变量存储在对象中,然后使用对象表示法将值赋值给变量:
<form>
<input data-varName="test1" />
<input data-varName="test2" />
</form>
var allVariables = {};
$('form input').each(function(){
allVariables[ $(this).data('varName') ] = $(this).val();
});或者,在普通的JavaScript中:
Array.from( document.querySelectorAll('form input') ).forEach(function(el) {
allVariables[ el.dataset.varName ] = el.value;
});在给定上述HTML的情况下,将产生如下所示的allVariables对象:
{
'test1' : test1Value,
'test2' : test2Value
}显然,您也可以使用window全局对象,并将变量注册到该对象,但这会使人担心window对象的变量是全局的,并且可能会被代码中的其他插件过度编写。
发布于 2016-07-21 23:01:09
目标data属性的正确语法是:
var myVar = $(this).data("varName");
有关更多信息,请参见这里:
编辑--
这并不解决如何设置变量名的问题,但它是针对数据属性的正确方法。
https://stackoverflow.com/questions/38515651
复制相似问题