如何在我的setAttribute函数中构建数组中的子函数
How to build-in array sub-function in my setAttribute function?
我已经编写了一个函数,它可以在输入元素中自动插入一个属性(即一个根据情况调整的onclick函数)。它也有一些例外。它看起来是这样的,出于清晰的原因有些简化:
function insertAttribute() {
var allInputs = document.getElementsByTagName('input');
var allInputsCount = allInputs.length;
var thatInput = null;
for (i = 0; i < allInputsCount; i++) {
thatInput = allInputs[i];
var highlightFunction = "highlightItem('"+thatInput.name+"-row','"+thatInput.name+"-button')";
if ((thatInput.name != "A") && (thatInput.name != "B") && (thatInput.name != "C"))
thatInput.setAttribute("onclick",highlightFunction);
}
}
问题是,有大约20个例外。我可以扩展if
行,但我更愿意使用数组。但是我该怎么做呢?我在谷歌上搜索了how to use array in javascript function
,(顶部的两个)结果建议我应该这样做:
function insertAttribute() {
var allInputs = document.getElementsByTagName('input');
var allInputsCount = allInputs.length;
var thatInput = null;
for (i = 0; i < allInputsCount; i++) {
thatInput = allInputs[i];
var highlightFunction = "highlightItem('"+thatInput.name+"-row','"+thatInput.name+"-button')";
var exceptedArray = ["A","B","C"];
if (thatInput.name != exceptedArray)
thatInput.setAttribute("onclick",highlightFunction);
}
}
但这不起作用——该属性仍然插入到异常中。应该怎么做?我需要一个普通的脚本解决方案。我也会很高兴有一个好的教程。正如您可能已经猜到的,这是我第一次使用这样的数组子函数。
注释中提供的解决方案exceptedArray.indexOf(thatInput.name)==-1
适用于大多数浏览器,但不适用于IE8。其脚本调试器表示不支持indexOf
。它在其他情况下也是如此,但显然不是在这种情况下。
在此期间,我学会了如何让脚本循环通过数组。这适用于所有浏览器:
var allInputs = document.getElementsByTagName('input');
var allInputsCount = allInputs.length;
var thatInput = null;
for (var i=0; i<allInputsCount; i++) {
thatInput = allInputs[i];
var highlightFunction = "highlightItem('"+thatInput.name+"-row','"+thatInput.name+"-button')";
var exceptedNamesArray = ["A","B","C","A4dTInput","A4eTInput"];
var excNamesArrayCount = exceptedNamesArray.length;
var excName = null;
for (var j=0; j<excNamesArrayCount; j++) {
excName = exceptedNamesArray[j];
if (thatInput.name != excName)
thatInput.setAttribute("onclick",highlightFunction);
}
}
相关文章:
- 如何在Javascript中从select标记的一系列选项中构建二维数组
- 构建HTML选择字段并使用JavaScript数组选择选项
- Javascript-在循环中构建数组
- 如何使用相同/重复的键构建关联数组
- Javascript-如何快速构建不同正整数数组的二进制表示
- 使用数组参数构建URL
- 如何迭代对象/数组中的项,并构建嵌套的JSON
- 构建数组侦听器
- 如何在我的setAttribute函数中构建数组中的子函数
- 尝试使用“for”循环来构建数组
- 如何使用jquery构建数组并创建输入字段
- 使用数组(javascript)构建数组
- 将构建数组的PHP代码转换为JS,现在的highcharts'不起作用——我做错了什么
- 在javascript中构建数组
- 按收入对象的顺序构建数组
- 如何构建数组("键":值)在js与循环json ajax
- 为ajax构建数组
- 通过ID参数参照另一个对象构建数组
- 为什么在JS中构建数组后调用函数时,我的数组显示为空
- 如何使用 JavaScript 构建数组数组