首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >html "data-“属性作为javascript变量

html "data-“属性作为javascript变量
EN

Stack Overflow用户
提问于 2016-07-21 22:57:06
回答 2查看 6.4K关注 0票数 4

是否可以将html数据-属性注册为javascript变量的名称?

我所说的是这样的:

代码语言:javascript
复制
<form>
  <input data-varName="test1" />
  <input data-varName="test2" />
</form>

$('form').find('input').each(function() {
  var $(this).attr('data-varName') = $(this).val();
});
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-07-21 23:25:09

一种选择是将变量存储在对象中,然后使用对象表示法将值赋值给变量:

代码语言:javascript
复制
<form>
  <input data-varName="test1" />
  <input data-varName="test2" />
</form>

var allVariables = {};

$('form input').each(function(){
  allVariables[ $(this).data('varName') ] = $(this).val();
});

或者,在普通的JavaScript中:

代码语言:javascript
复制
Array.from( document.querySelectorAll('form input') ).forEach(function(el) {
    allVariables[ el.dataset.varName ] = el.value;
});

在给定上述HTML的情况下,将产生如下所示的allVariables对象:

代码语言:javascript
复制
{
  'test1' : test1Value,
  'test2' : test2Value
}

显然,您也可以使用window全局对象,并将变量注册到该对象,但这会使人担心window对象的变量是全局的,并且可能会被代码中的其他插件过度编写。

票数 2
EN

Stack Overflow用户

发布于 2016-07-21 23:01:09

目标data属性的正确语法是:

var myVar = $(this).data("varName");

有关更多信息,请参见这里:

https://api.jquery.com/data/

编辑--

这并不解决如何设置变量名的问题,但它是针对数据属性的正确方法。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38515651

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档