我有以下代码:
var transitionsSettingsClass = document.getElementsByClassName("transitionsSettings");
var transitionsSettingsClassLenght = transitionsSettingsClass.length;
for (i=0; i < transitionsSettingsClassLenght; i++);
{
transitionsSettingsClass[i].setAttribute("data-transition",transitionsSettings);
};
我知道transitionsSettingsClassLenght = 6因为我已经通过警告检查了它。但是当我在循环内部发出警报时,它只显示1次(它应该显示6次)。还没有设置属性数据转换。但当我取代&#34;我&#34; inside transitionsSettingsClass [i] with transitionsSettingsClass [0]我的第一个元素发生了变化,它正在工作。该脚本应该改变6个元素中的属性数据转换。
答案 0 :(得分:9)
删除
末尾的;
for (i=0; i < transitionsSettingsClassLenght; i++);
此处的for
仅在;
之前命令代码,这是什么。
我建议您使用最常用的javascript样式as explicited by Google,因为它有助于避免此类错误。
答案 1 :(得分:0)
您是否尝试过使用jquery的每种方法?
$('.transitionsSettings').each(function(index) {
$(this).setAttribute("data-transition",transitionsSettings);
});
答案 2 :(得分:0)
正如旁注:
在所有现代浏览器中,您可以通过调用
来设置data-
属性
node.dataset.transition = transitionsSettings;
答案 3 :(得分:0)
以下代码解释如下:
for (i=0; i < transitionsSettingsClassLenght; i++);
{
transitionsSettingsClass[i].setAttribute("data-transition",transitionsSettings);
};
第一行:for (i=0; i < transitionsSettingsClassLenght; i++);
执行6次,因为Javascript认为它是单个语句。然后它遇到了
{
transitionsSettingsClass[i].setAttribute("data-transition",transitionsSettings);
};
作为一个块执行一次。从for循环的末尾删除;
将解决问题。