为什么document.write不起作用?

时间:2011-06-27 14:24:32

标签: javascript html arrays document.write

为什么document.write方法不起作用?

这是我的代码:

<SCRIPT LANGUAGE = "JavaScript">

var candidateArray = ['Mr R Green...', 'Ms O Brown...', 'Ms Y Black...', 'Mr G White...', 'Ms B Grey....','Ms I Blue....', 'Mr V Pink....'];
var onlineVotesArray = [21,47,23,11,56,47,30];
var paperVotesArray = [12,4,20,11,5,4,17];

var totalVotesArray;
var x = 0;
var lengthPaperVotesArray = length(paperVotesArray);
for x in range(lengthCandidateArray) {
    totalVotes = onlineVotesArray(x) + paperVotesArray(x);
    totalVotesArray(x) = totalVotes;
    x = x + 1;
}

document.write(totalVotesArray);

</SCRIPT>

顺便说一句,我必须使用document.write方法,而不是其他变种。

4 个答案:

答案 0 :(得分:4)

你的语法都错了。

要访问数组中的项目,请使用[]而非(),并且for/in循环需要在表达式周围使用括号。

 //-v--------------------------------v------parentheses
for (x in range(lengthCandidateArray)) {

    totalVotes = onlineVotesArray[x] + paperVotesArray[x];
 // ---------------v-v-----------^-^------------------^-^-----square brackets
    totalVotesArray[x] = totalVotes;
    x = x + 1;
}

此外,您正在调用lengthrange方法。如果你没有在另一个脚本中使用它们,那么它们就不存在了。

如果您只想获取数组的.length,请使用该属性。而且您不需要range方法来循环。

var candidateArray = ['Mr R Green...', 'Ms O Brown...', 'Ms Y Black...', 'Mr G White...', 'Ms B Grey....','Ms I Blue....', 'Mr V Pink....'];
var onlineVotesArray = [21,47,23,11,56,47,30];
var paperVotesArray = [12,4,20,11,5,4,17];

var totalVotesArray = [];
var lengthPaperVotesArray = paperVotesArray.length;

for (var x = 0; x < lengthPaperVotesArray; x++) {
    totalVotesArray[x] = onlineVotesArray[x] + paperVotesArray[x];
}

document.write(totalVotesArray);

示例: http://jsfiddle.net/8fkZq/


修改::

如果您希望输出合并这样的候选人:

Mr R Green... : 33,
Ms O Brown... : 51,
Ms Y Black... : 43,
Mr G White... : 22,
Ms B Grey.... : 61,
Ms I Blue.... : 51,
Mr V Pink.... : 47

...你可以改变循环:

for (var x = 0; x < lengthPaperVotesArray; x++) {
    totalVotesArray[x] = '<br>' + candidateArray[x] + ' : ' + (onlineVotesArray[x] + paperVotesArray[x]);
}

示例: http://jsfiddle.net/8fkZq/1/

答案 1 :(得分:0)

您正在引用“lengthCandidateArray”,但这未定义。

如果您打开了firebug,您可能会看到相关的错误。如果您将来提出问题,这是至关重要的信息。

答案 2 :(得分:0)

您的javascript代码中似乎有一些错误

var totalVotesArray = [];
var x = 0;
var lengthPaperVotesArray =paperVotesArray.length;
for (x = 0;x < lengthPaperVotesArray ; x++){
    totalVotes = onlineVotesArray[x] + paperVotesArray[x];
    totalVotesArray.push(x) = totalVotes;
}
document.write(totalVotesArray.join(', '));//i don't think you can write an array

答案 3 :(得分:0)

这充满了语法错误。我不知道你用什么语言编程,但jScript显然不是其中之一。首先,长度(x)不是全局方法。如果您想获得数组的长度,请使用array.length。接下来,js中for ... in的语法是for (x in array) { ... }。此外,如果要将变量作为数组引用,则必须将其声明为(var array = [];)。最后,要访问数组的元素,请使用array[x],而不是数组(x)。试试这个:

<SCRIPT type="text/javascript">

var candidateArray = ['Mr R Green...', 'Ms O Brown...', 'Ms Y Black...', 'Mr G White...', 'Ms B Grey....','Ms I Blue....', 'Mr V Pink....'];
var onlineVotesArray = [21,47,23,11,56,47,30];
var paperVotesArray = [12,4,20,11,5,4,17];

var totalVotesArray = [];
var x = 0;
var lengthPaperVotesArray = paperVotesArray.length;
for (x in paperVotesArray){
    totalVotes = onlineVotesArray[x] + paperVotesArray[x];
    totalVotesArray[x] = totalVotes;
    x = x + 1;
}

document.write(totalVotesArray);

</SCRIPT>