无效的字符串长度/分配大小重载JavaScript

时间:2014-08-30 21:38:39

标签: javascript jquery arrays string

我有一系列复选框,检查它们是否已经过检查,如果有,请在数组中添加一个字符串。然后我循环遍历字符串数组,并将数组中的字符串添加到以逗号分隔的新字符串中。不幸的是,这总是会导致错误。在Chrome中,控制台显示“无效字符串长度”。在Firefox中,错误显示为“分配大小溢出”。

JavaScript的:

// Compile List of Interests
interests = new Array();
if ( $("input[name=interestRoofing]").is(':checked') == true ) interests.push("Roofing");
if ( $("input[name=interestSiding]").is(':checked') == true ) interests.push("Siding");
if ( $("input[name=interestGutters]").is(':checked') == true ) interests.push("Gutters");
if ( $("input[name=interestWindows]").is(':checked') == true ) interests.push("Windows");
if ( $("input[name=interestPaint]").is(':checked') == true ) interests.push("Exterior Paint");
interestsString = "";
for ( i = 0; i < interests.length; i++ ) { // "Invalid String Length" in Chrome on This Line
    interestsString = interestsString + interests[i]; // "Allocation Size Overload" in Firefox on This Line
    if ( i < interests.length - 2 ) interestsString += ", ";
    if ( i = interests.length - 2 ) interestsString += "and ";
}

HTML:

<p>Interested In:</p>
<p><input type="checkbox" name="interestRoofing" value="">Roofing</p>
<p><input type="checkbox" name="interestSiding" value="">Siding</p>
<p><input type="checkbox" name="interestGutters" value="">Gutters</p>
<p><input type="checkbox" name="interestWindows" value="">Windows</p>
<p><input type="checkbox" name="interestPaint" value="">Exterior Paint</p>

我确信无论出现什么问题,只要我看到它就会打击我,但我整天都在讨论这个问题,但还没有提出解决方案。显然这里有一些我没看到的东西。任何帮助将非常感激。奇怪的是,Internet Explorer中的控制台不会吐出任何东西,好像没有出错。 我可以通过在for循环检查的开头添加if语句来消除Chrome的无效字符串长度错误,以确保数组的长度不是0.但是,Firefox中的错误仍然存​​在,所以这不一定是解决方案

1 个答案:

答案 0 :(得分:5)

if ( i = interests.length - 2 ) interestsString += "and ";

你在这里做作业。你可能想要进行比较。