发表于: 2019-12-16 22:06:51

2 1147


今日完成:

解决:
直接在代码的结尾写上aaa++,或者++aaa或者单独使用,它们代表的含义,aaa=aaa+1,都是可以的,
即aaa先以aaa=0运行函数,函数结尾不影响执行代码处,运算加一,在函数再次运行是,以aaa=1出现,参加代码运行
至于序号是从1开始,而不是数组索引值从零开始,直接在输出序号时添加aaa+1就可以了
ps:
1.这设置demo时,又设置了一个点击事件,同个id上设置了两个点击事件,输出的结果会产生混淆
2.在字符串中,要想添加运算的表达式,需要在运算表达式外面用小括号包裹
ex:
document.getElementById("p3").innerHTML="隐藏并传递给"+aaa+2+"号";//传递下一位所以加2
对比:document.getElementById("p3").innerHTML="隐藏并传递给"+(aaa+2)+"号";//传递下一位所以加2
总结:从显示效果看,计算表达式,不用小括号包裹,直接与字符串连接,计算的+也变成连接作用,只有纯运算才不需要小括号包裹
设置另一个函数,显示身份隐藏页面(上面的函数显示身份显示页面)
//身份隐藏页面的函数
//描述:每点击一次,显示序号递进一位,查看身份递进一位
document.getElementById('p3').onclick= function(){
document.getElementById("p1").innerHTML=aaa+2;//因为默认就是查看1号身份,而aaa初始值为0,所以计算表达式aaa+2
document.getElementById("p3").innerHTML="查看"+(aaa+2)+"号身份";//同上,在字符串中添加计算,需要在表达式外用小括号包裹
aaa++;
}
遇到问题:怎么让两个函数交替运行
找到方法,用奇偶数判断
具体:声明一个变量=0,每次点击加一,然后判断这个变量是奇数还是偶数
奇数运行身份显示函数,偶数运行身份隐藏函数
判断奇偶的两种方式:
ex:
方法1:
if( x&1 == 0 ){//&含义不懂,但是含义与下方%的用途相似(大概)
 // 偶数
 }
else{
 // 奇数 
}
方法2:
if( x%2 == 0 ){ //判断能否被2整除,%这里代表除以2之后取余数的意思(大概)
// 偶数 
}
else{ 
// 奇数
 }
遇到问题:匿名函数怎么详细去做
....
做的时候发现,不需要匿名函数,直接把执行代码放到判断语句中就可以了
代码如下:
document.getElementById('p3').onclick= function(){
bbb++;
if( bbb%2 == 1 ){ //判断能否被2整除,%这里代表除以2之后取余数的意思(大概)
// 奇数
document.getElementById("p1").innerHTML=aaa+1;//页面的序号从1开始,所以aaa+1
document.getElementById("p3").innerHTML="隐藏并传递给"+(aaa+2)+"号";//传递下一位所以加2
if(cc4[aaa]==0)//从传递来的数组序号0开始,数组中索引值代表的值是0,代表是杀手
// 遇到问题:if(cc4[aaa]=0)//不管索引值多少,都无法显示杀手身份,
{
document.getElementById("p2").innerHTML="身份:杀手";//身份输出杀手
document.getElementById("ioc").src="2.png"
}
else if(cc4[aaa]==1)//从传递来的数组序号0开始,数组中索引值代表的值是1,代表是平民
{
document.getElementById("p2").innerHTML="身份:平民";//身份输出平民
document.getElementById("ioc").src="3.png"
}
aaa++;
console.log(aaa)
}
else{
// 偶数
document.getElementById("p1").innerHTML=aaa+1;//因为默认就是查看1号身份,而aaa初始值为0,所以计算表达式aaa+2
document.getElementById("p3").innerHTML="查看"+(aaa+1)+"号身份";//同上,在字符串中添加计算,需要在表达式外用小括号包裹
document.getElementById("ioc").src="aaa.png";//变回原来的图片
document.getElementById("p2").innerHTML="";//变回原来的空字符
// aaa++;同一个函数内部,aaa的值是共用的,即便判断语句,不在一个括号内部
}
}
注意:
1.同一个函数内部,aaa的值是共用的,即便判断语句,不在一个括号内部
2.dom操作html元素,注意都要改回来,样式包括空字符串(不是空格,是空的,)

然后,限定,判断语句的指定代码中加上限制语句,且(&&)小于数组长度加一,当等于时,跳转法官页面

遇到问题:
数组一共8个元素.但是到9位才显示法官页面
拆分成原本的显示显示身份函数
console.log(cc4.length);
console.log(aaa);
aaa++;
显示:
原因:数组的8个数是0~7,我设置的
if(aaa==cc4.length){
document.getElementById("p3").innerHTML="法官页面";
}
是在aaa++之上,也就是显示身份
document.getElementById("p1").innerHTML=aaa+1;//页面的序号从1开始,所以aaa+1
document.getElementById("p3").innerHTML="隐藏并传递给"+(aaa+2)+"号";//传递下一位所以加2
到9之后点击生效,也就是序号9才生效
解决:
把判断语句写在aaa++的下方
ps:
1.当数组索引值大于数组实际元素时,函数不会报错,而是无效,效果显示为最后一次有效值的改变
2.因为1的原因,所以不用特意用限制语句且(&&)<=cc4.length来限制,结束代码
3.DOM绑定同一个HTML元素,js中后一个样式覆盖前一个样式
4.显示法官页面在显示身份页面,但点击跳转页面在隐藏身份页面
5.js同html一样,没有预编译,代码从上往下一边编译一边显示,所以要注意,代码的书写顺序
6.一个判断语句里面可以执行一个或多个判断语句,没有必要,要把所有的执行代码写在同一个判断语句中
完成代码如下:
//判断执行隐藏/显示执行语句
document.getElementById('p3').onclick = function () {
bbb++;
if (bbb % 2 == 1) {
//判断能否被2整除,%这里代表除以2之后取余数的意思(大概) // 奇数
//运行显示页面代码如下:
document.getElementById("p1").innerHTML = aaa + 1; //页面的序号从1开始,所以aaa+1
document.getElementById("p3").innerHTML = "隐藏并传递给" + (aaa + 2) + "号"; //传递下一位所以加2
if (cc4[aaa] == 0) //从传递来的数组序号0开始,数组中索引值代表的值是0,代表是杀手
// 遇到问题:if(cc4[aaa]=0)//不管索引值多少,都无法显示杀手身份,
{
document.getElementById("p2").innerHTML = "身份:杀手"; //身份输出杀手
document.getElementById("ioc").src = "2.png"
}
//判断语句中,之间用console会报错
// console.log(aaa)
else if (cc4[aaa] == 1) //从传递来的数组序号0开始,数组中索引值代表的值是1,代表是平民
{
document.getElementById("p2").innerHTML = "身份:平民"; //身份输出平民
document.getElementById("ioc").src = "3.png"
}
//错误代码,应该写在aaa++之下,执行代码不用非要写在同一个判断语句中,可以有多个
// else if (aaa = cc4.length) {
// document.getElementById("p3").innerHTML = "法官查看";
// }
aaa++;
if(aaa==cc4.length){
document.getElementById("p3").innerHTML="法官页面";
}
console.log(aaa)
}
else {
// 偶数
//运行隐藏页面代码如下
document.getElementById("p1").innerHTML = aaa + 1; //因为默认就是查看1号身份,而aaa初始值为0,所以计算表达式aaa+2
document.getElementById("p3").innerHTML = "查看" + (aaa + 1) + "号身份"; //同上,在字符串中添加计算,需要在表达式外用小括号包裹
document.getElementById("ioc").src = "aaa.png"; //变回原来的图片
document.getElementById("p2").innerHTML = ""; //变回原来的空字符
// aaa++;
if(aaa==cc4.length){
window.location.href = "../js2-4/js2-4.html";
}
}
}
数组默认元素个数为8
显示:
点击跳转法官页面
编辑法官页面
怎么根据实际的数组内值的个数显示相应的身份列表?
解决:知识储备不够,只能想到一个最笨的方法
思路:
数组传递到法官页面
先设置18个身份模块
分别设置判断语句,小于等于数组长度出现,大于隐藏,

然后根据数组传过来的值赋予身份



遇到问题:

1.写代码查询代码时,容易跑偏,去看扩展知识,比如取余负数时,好像是不对的,而且,因为不懂一些方法,查到后才发现与,要的东西无关,暂时就先收藏

2.突然发现,有时候写代码,是想到做法的,不管对不对,去没有去实践,因为觉得喽,比如18个身份块,非要空想其他的

结果还没想出来,也没实践这个喽的是不是可以实现

3.代码是挺简单好写的,但是代码后面的逻辑思考,就不是那么容易想了,为什么跳转到9才出现法官页面卡了我很久,才解决

收获:

1.取余的两种方式

2.调整心态,先完成再完美,先实现效果,在去想怎么去优化代码

明日计划:继续js2-4


返回列表 返回列表
评论

    分享到