Javascript数组声明(可能错误地使用了长度属性?)
我正在尝试获取红色字体标记的innerHTMLJavascript数组声明(可能错误地使用了长度属性?),javascript,arrays,undefined,getelementsbytagname,Javascript,Arrays,Undefined,Getelementsbytagname,我正在尝试获取红色字体标记的innerHTML var fontTags = document.getElementsByTagName('font'); var reds = []; var j = 0; var i = 0; // ETA this line for (i;i<=fontTags.length;i++) { // ETA the 'i<=' if (fontTags[i].getAttribute('color') == 'RED') { reds[j
var fontTags = document.getElementsByTagName('font');
var reds = [];
var j = 0;
var i = 0; // ETA this line
for (i;i<=fontTags.length;i++) { // ETA the 'i<='
if (fontTags[i].getAttribute('color') == 'RED') {
reds[j] = fontTags[i].innerHTML;
j++;
}
}
var fontTags=document.getElementsByTagName('font');
风险价值=[];
var j=0;
变量i=0;//这条线
for(i;i您的for
循环缺少正确的循环条件
for (i=0;i<fontTags.length;i++) {
if (fontTags[i].getAttribute('color') == 'RED') {
reds[j] = fontTags[i].innerHTML;
j++;
}
}
for(i=0;i您的for
循环缺少正确的循环条件
for (i=0;i<fontTags.length;i++) {
if (fontTags[i].getAttribute('color') == 'RED') {
reds[j] = fontTags[i].innerHTML;
j++;
}
}
用于(i=0;i用于(i=0;i用于(i=0;i使用
对于(i=0;i使用
对于(i=0;iYou正在泄漏一个全局i
,实际上根本不应该使用
标记。如果fontTags.length
大于0
,fontTags.length
将始终计算为true
。因此,在某个时刻i
将(相等)大于fontTags.length
。您希望将其与当前计数器进行比较,如i
。您的条件是否总是正确的?并且i
将比nodeList
中的元素数量增长更多,因此fontTags[i]
将是未定义的。@ThiefMaster:这是一个Greasemonkey脚本;)你正在泄漏一个全局i
,根本不应该使用
标记。如果fontTags.length
大于0
,fontTags.length
将始终计算为true
。因此,在某个时刻i
将被忽略(等于)大于fontTags.length
。您希望将其与当前计数器进行比较,如i
。您的条件不总是正确的吗?并且i
的增长将超过节点列表中的元素数,因此fontTags[i]
将是未定义的。@ThiefMaster:这是一个Greasemonkey脚本;)抱歉。请参阅编辑修复代码。但是我仍然看到相同的错误。这是sirko写的,但您的条件仍然错误。小于;且不小于或等于。是的,因为我从零开始,长度不…duh。谢谢:)抱歉。请参阅“修复代码的编辑”。但是,我仍然看到相同的错误。这是sirko写的,但您的条件仍然错误。小于;且不小于或等于。是的,因为我从零开始,长度不…duh。谢谢:)