发表于: 2017-03-30 23:32:15

1 591


今天完成的事情:JS-2任务前进了一大步!!
明天计划的事情:继续前进
遇到的问题:今天是刷了一天的JS DOM的编程艺术,到晚上才开始码代码

问题1:直接用var一个变量来获取表单的value是获取不到的,虽然不知道为什么,但是可以先var一个变量获取表单,然后在函数里面再获取那个变量的value.

偷看了一个人的代码,看到一条代码豁然开朗!!

直接声明一个总数组,然后这个数组的length等于表单的value,完美解决获取表单value的各种情况啊..

array.length=inp.value;

问题2:按书上的DOM方法,createElement+createTextNode+appendChild方法,依次是新建一个元素节点,新建一个文本节点,把节点加进去。

var para = document.createElement("p");
para.style.float = "left";
var test = document.getElementById("box1");
test.appendChild(para);
var txt1 = document.createTextNode("杀手");
test.appendChild(txt1);

这逻辑是,新建一条<p>元素,然后让<p>元素浮动,然后获取ID为"box1"的DIV,然后把<p>元素追加到box1的DIV里面,然后再新建一条文本节点,内容“杀手”,然后再追加到box1的DIV里面。根据昨天写的计算杀手数量的算式,就可以输出杀手的正确数量了,同理输出水民的数量,再写一个for循环就好了。

但是这里遇到一个大坑,第一次把<p>元素追加进去的时候一直追加不进去,调试了半天也不知道,后面找到原因:一开始获取box1的时候是用ClassName来获取的,然后给box1加了个ID,用ID来获取,就可以了!!

明天要解决的问题就是让水民和杀手随机分配,和判断value只能输出6~18;还有一个问题就是怎么让这个p元素占50%的宽度,让它一排只能排两个,我用style给它设置定宽和百分比宽度都不行,还有一个问题就是杀手前面的小方块不知道怎么加,再追加一个节点??感觉很麻烦,因为小方块颜色和字体不一样要单独设置,还要和小方块在同一行,可能要用再追加一个DIV来实现,用这个DIV包着小方块和文字。

收获:小课堂学习了九哥教的数据类型(没听明白),学会了DOM的新增节点和追加节点,还有数组的使用。下面是我各个数组的计算代码。

array.length=inp.value;
kill.length=(parseInt((array.length-6)/3)+1);
man.length=(array.length) - (kill.length);

Array是总数组,kill是杀手数量,man是水民的数量,杀手数量的计算方式详见上一篇日报。


返回列表 返回列表
评论

    分享到