#1 - 2021-1-20 11:15
妄想是不治之症 (水中月是天上月,眼前喵是心上喵)
HTML CSS JS相关学习记录。吐槽为主
业余爱好者,一天看一点点。
经验0 程序知识0
二十年后我一定能成为牛逼的前端的!
希望二十年后这个贴子已经被删掉了
业余爱好者,一天看一点点。
经验0 程序知识0
二十年后我一定能成为牛逼的前端的!
希望二十年后这个贴子已经被删掉了
顺序
#3 - 2021-1-20 11:21
#5 - 2021-1-20 12:10
#7 - 2021-1-20 12:44
#13 - 2021-1-21 11:18
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#13-1 - 2021-1-21 11:24
#13-3 - 2021-1-21 13:53
頂上ノ月🌙
其实就是按一次就变一次 只是效果一样所以没变化(
按一次修改再按一次复原就先记录当前效果再改成另一个效果
妄想是不治之症 说: 疑问*2
JavaScript演示中通常都是onlick="myfunction()",改变字体颜色等等,但是只能改变一次。
按一次修改再按一次复原的话是怎么办呢
按一次修改再按一次复原就先记录当前效果再改成另一个效果
#13-5 - 2021-1-21 14:32
妄想是不治之症
谢谢解答!!!
大佬其实不用认真解答我的疑问的hhh因为太多太傻的问题了解答不过来,怕大佬烦。
🍋LautlosP🍋 说: 其实就是按一次就变一次 只是效果一样所以没变化(
按一次修改再按一次复原就先记录当前效果再改成另一个效果
大佬其实不用认真解答我的疑问的hhh因为太多太傻的问题了解答不过来,怕大佬烦。#13-6 - 2021-1-21 16:07
妄想是不治之症
了解box模型:https://blog.csdn.net/qq_26780317/article/details/80736514
如果想要用百分比设置盒子的宽度以自适应各个屏幕宽度,并且不会随着padding和border而放大,用box-sizing:border-box
如果想要用百分比设置盒子的宽度以自适应各个屏幕宽度,并且不会随着padding和border而放大,用box-sizing:border-box
#18 - 2021-1-23 11:19
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#18-1 - 2021-1-23 11:49
妄想是不治之症
找出水仙花数的实战。忘记了%是求余运算…写麻烦了。
var a = parseInt(i/100);
var b = parseInt(i/10) - 10*a
var c = i - 100 * a - 10 * b;
if (i == (a * a * a + b * b * b + c * c * c))
{
str = str + i + "、";
}
结果一不小心写成了
var c = i - 100 * a - 100 * b;
得出结果只有407.。。。瘸了。
var a = parseInt(i/100);
var b = parseInt(i/10) - 10*a
var c = i - 100 * a - 10 * b;
if (i == (a * a * a + b * b * b + c * c * c))
{
str = str + i + "、";
}
结果一不小心写成了
var c = i - 100 * a - 100 * b;
得出结果只有407.。。。瘸了。
#18-3 - 2021-1-23 16:11
妄想是不治之症
今天孩子傻了。
i=0 ; if(i=0) alert("true");else alert("false")
false
i=1 ; if(i=0) alert("true");else alert("false")
false
i=0 ; if(i=1) alert("true");else alert("false")
true
i=1 ; if(i=1) alert("true");else alert("false")
true
i=1 ; if(i==true) alert("true");else alert("false")
true
我搞了好久才搞明白这其中的逻辑。就是先赋值,再判断布尔值。0在布尔值中是false
i=0 ; if(i=0) alert("true");else alert("false")
false
i=1 ; if(i=0) alert("true");else alert("false")
false
i=0 ; if(i=1) alert("true");else alert("false")
true
i=1 ; if(i=1) alert("true");else alert("false")
true
i=1 ; if(i==true) alert("true");else alert("false")
true
我搞了好久才搞明白这其中的逻辑。就是先赋值,再判断布尔值。0在布尔值中是false
#21 - 2021-1-25 18:40
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#21-6 - 2021-1-26 11:18
妄想是不治之症
谢谢大佬,我才发现不是我不会用循环方法的问题,而是计算机理解的语句总是和我理解的语句不一样的问题。。。比如上面那句是本来就没法运行的,因为一开始a=0就已经跳出循环了。崩溃了简直
此间的少年x 说: 两个两层for循环
#21-8 - 2021-1-26 14:23
妄想是不治之症
原来我写的循环不能成功输出是因为判定语句有问题。
而且很多语句我都是自己想当然瞎写的。写不出来简直太正常了。
太好了不是因为我比较笨
发现问题之后重新梳理了一遍,之后就顺利多了。
而且为了方便扩展做了一个输入口,输入任意大于1的数字都可以输出大小不同的菱形。
而且很多语句我都是自己想当然瞎写的。写不出来简直太正常了。
太好了不是因为我比较笨
发现问题之后重新梳理了一遍,之后就顺利多了。
而且为了方便扩展做了一个输入口,输入任意大于1的数字都可以输出大小不同的菱形。
#21-9 - 2021-1-26 14:53
#22 - 2021-1-26 17:59
#23 - 2021-1-27 10:21
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#23-1 - 2021-1-27 10:31
妄想是不治之症
0到m之间的随机整数:Math.floor(Math.random()*(m+1))
1到m之间的随机整数:Math.floor(Math.random()*m)+1
n到m之间的随机整数:Math.floor(Math.random()*(m-n+1))+n
1到m之间的随机整数:Math.floor(Math.random()*m)+1
n到m之间的随机整数:Math.floor(Math.random()*(m-n+1))+n
#23-2 - 2021-1-27 14:20
妄想是不治之症
DOM操作,梳理一下过程:
如果需要让用户输入的内容成为节点的一部分,需要以下几步:
1.document.getElementById()(或者classname或者tagname)获取用户输入的内容
2.document.createTextNode()把内容转化为文本节点
3.document.createElement()创造一个新的元素节点
4.节点.appendChild()把文本节点插进新元素
5.节点.appendChild()把新元素插进已有节点。
(是不是有一点点过于麻烦了)
如果需要让用户输入的内容成为节点的一部分,需要以下几步:
1.document.getElementById()(或者classname或者tagname)获取用户输入的内容
2.document.createTextNode()把内容转化为文本节点
3.document.createElement()创造一个新的元素节点
4.节点.appendChild()把文本节点插进新元素
5.节点.appendChild()把新元素插进已有节点。
(是不是有一点点过于麻烦了)
#23-3 - 2021-1-28 17:01
妄想是不治之症
果然是过于麻烦。原来用innerHTML就完美解决。
妄想是不治之症 说: DOM操作,梳理一下过程:
如果需要让用户输入的内容成为节点的一部分,需要以下几步:
1.document.getElementById()(或者classname或者tagname)获取用户输入的内...
#23-4 - 2021-1-28 17:19
妄想是不治之症
啊,会了这个我自己就可以手动roll点了。
可以抽奖了
妄想是不治之症 说: 0到m之间的随机整数:Math.floor(Math.random()*(m+1))
1到m之间的随机整数:Math.floor(Math.random()*m)+1
n到m之间的随机整数:Math....
可以抽奖了
#27 - 2021-1-29 14:13
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#27-1 - 2021-1-29 15:37
妄想是不治之症
完全没懂*2
每次调用一个事件的时候,JavaScript都会默认给这个事件函数加上一个隐藏的参数,这个参数就是event对象。一般来说,event对象是作为事件函数的第1个参数传入的。
#27-2 - 2021-1-29 16:27
妄想是不治之症
上面这个函数没有效果,教程说是闭包问题,不用管,把改成this.style.color就可以解决。
然后去搜了一下闭包是什么,发现更加迷茫。
for (var i = 0; i < oLi.length; i++)
{
oLi[i].onclick = function ()
{
oLi[i].style.color = "hotpink";
}
}
上面这个函数没有效果,教程说是闭包问题,不用管,把
oLi[i].style.color
然后去搜了一下闭包是什么,发现更加迷茫。
#27-3 - 2021-1-29 17:04
妄想是不治之症
这里面有个[i ],所以给显示成了斜体。为了bgm正确显示,在中间插了一个空格。
妄想是不治之症 说: for (var i = 0; i < oLi.length; i++)
{
&...
#27-4 - 2021-1-29 17:15
茧
班固米的BBCode支持code标签
妄想是不治之症 说: 这里面有个[i ],所以给显示成了斜体。为了bgm正确显示,在中间插了一个空格。
oLi[i].style.color = "hotpink";
#27-5 - 2021-1-29 17:18
茧
我的理解是,定义事件时指定的callback会自带一个名为event的参数,这个参数可以在callback里面调用,比如说
myFunction里面虽然没有明确声明event这个参数,但是是可以调用它的
这样,每次点击someObj,这个事件类型(这里自然是click)就会输出到console
妄想是不治之症 说: 完全没懂*2
someObj.addEventListener("click", myFunction);
function myFunction() {
console.log(event.type);
}myFunction里面虽然没有明确声明event这个参数,但是是可以调用它的
这样,每次点击someObj,这个事件类型(这里自然是click)就会输出到console
#27-6 - 2021-1-29 17:21
妄想是不治之症
阮一峰牛逼,看了一下他的http://www.ruanyifeng.com/blog/2 ... cript_closures.html
感觉好像懂了。闭包就是让一个函数内部的变量可以在函数外部使用和修改的函数。
最后两个思考题也做对了。但是回到这题还是没懂。。。
感觉好像懂了。闭包就是让一个函数内部的变量可以在函数外部使用和修改的函数。
最后两个思考题也做对了。但是回到这题还是没懂。。。
#27-7 - 2021-1-29 17:23
#27-8 - 2021-1-29 17:33
妄想是不治之症
这里面都只有一个函数。非要说两个的话就是最外面包含了一个window.onload = function(),但是window.onload外面并没有引用i所以应该不存在什么函数外修改函数内变量等问题。。。难道for循环算一个函数吗?
妄想是不治之症 说: for (var i = 0; i < oLi.length; i++)
{
&...
#27-9 - 2021-1-29 18:32
妄想是不治之症
我好像懂了。
调试了一下,发现显示Cannot read property 'style' of undefined
尝试修改了一下,注释掉for循环
加一句 var i = 1 成功输出。
恢复for循环,在循环里另外引入一个a
结果是不论点哪个元素,都只能让最后一个元素变红。
把oLi[a ].style改成oLi[i ].style仍然undefined
我的理解:
浏览器在加载完window.onload函数后已经执行了for循环,在执行for循环的时候,定义了数个没有被调用的oLi[i ],就是oLi[0]oLi[1]oLi[2],在执行完循环内所有代码块之后,再等待事件发生。而加了this就会不一样。至于this是个什么机制,还没搞懂。
为了验证,在源代码语句前面加了一句alert(i)之后,再调试,发现不论点击哪个li,都没有元素变红,然后提醒3……
调试了一下,发现显示Cannot read property 'style' of undefined
尝试修改了一下,注释掉for循环
加一句 var i = 1 成功输出。
恢复for循环,在循环里另外引入一个a
var a = i
oLi[a].onclick = function ()
{
oLi[a].style.color = "hotpink";
}
结果是不论点哪个元素,都只能让最后一个元素变红。
把oLi[a ].style改成oLi[i ].style仍然undefined
我的理解:
浏览器在加载完window.onload函数后已经执行了for循环,在执行for循环的时候,定义了数个没有被调用的oLi[i ],就是oLi[0]oLi[1]oLi[2],在执行完循环内所有代码块之后,再等待事件发生。而加了this就会不一样。至于this是个什么机制,还没搞懂。
为了验证,在源代码语句前面加了一句alert(i)之后,再调试,发现不论点击哪个li,都没有元素变红,然后提醒3……
#27-12 - 2021-1-29 18:54
妄想是不治之症
辛苦大佬。谢谢谢谢谢谢。
但是悲哀的是我尝试搜索了一下callback是什么,发现都是我根本没见过的内容,举例都看不懂……是不是属于js进阶的内容哇。
我先保留疑问,等学到再回来看
另外能不能帮我看看我楼上的理解是不是对的……
再次拜谢
茧 说: 我的理解是,定义事件时指定的callback会自带一个名为event的参数,这个参数可以在callback里面调用,比如说
someObj.addEventListener("click", myFu...
但是悲哀的是我尝试搜索了一下callback是什么,发现都是我根本没见过的内容,举例都看不懂……是不是属于js进阶的内容哇。

我先保留疑问,等学到再回来看

另外能不能帮我看看我楼上的理解是不是对的……

再次拜谢
#27-13 - 2021-1-29 19:11
ekibun
应该是先i++然后i=3的时候不满足条件跳出了吧。
说来为什么不看廖雪峰的
html什么的就别学了吧,知道div input就够了,又不是不能用
妄想是不治之症 说: 所以我的理解应该是对的。只是这里为什么i=3。。。又没懂了 for循环会在不满足判定条件之后再执行一次i++?
说来为什么不看廖雪峰的

html什么的就别学了吧,知道div input就够了,又不是不能用
#27-14 - 2021-1-29 19:12
snylonue
回调应该就是把一个函数传给另一个函数调用
比如
edit: 去掉匿名函数
妄想是不治之症 说: 辛苦大佬。谢谢谢谢谢谢。
但是悲哀的是我尝试搜索了一下callback是什么,发现都是我根本没见过的内容,举例都看不懂……是不是属于js进阶的内容哇。
我先保留疑问,等学到再回来看
另外能不能帮我看看...
比如
let func = function(f) { f(); };
let hello = function() { console.log("hello, world"); };
func(hello);edit: 去掉匿名函数
#27-15 - 2021-1-29 19:30
妄想是不治之症
懂了。for机制就是这样的,是我没理解清楚。
html早没看了,现在再看js入门。
ekibun 说: 应该是先i++然后i=3的时候不满足条件跳出了吧。
说来为什么不看廖雪峰的
html什么的就别学了吧,知道div input就够了,又不是不能用
html早没看了,现在再看js入门。
#27-16 - 2021-1-29 19:34
妄想是不治之症
廖的是0到高阶。我担心对于小白来说会有点难,目前计划是看完这个再去看廖的,也是一种巩固基础吧。
按这进度差不多下个星期能开始看廖的教程了。
ekibun 说: 应该是先i++然后i=3的时候不满足条件跳出了吧。
说来为什么不看廖雪峰的
html什么的就别学了吧,知道div input就够了,又不是不能用
按这进度差不多下个星期能开始看廖的教程了。
#27-17 - 2021-1-29 20:09
ekibun
这for循环太阴间了,上面var a=i 改成const a=i 也是对的。js感觉还是不太适合编程入门
update: 原来大家都知道。。。
妄想是不治之症 说: 廖的是0到高阶。我担心对于小白来说会有点难,目前计划是看完这个再去看廖的,也是一种巩固基础吧。 按这进度差不多下个星期能开始看廖的教程了。
这for循环太阴间了,上面var a=i 改成const a=i 也是对的。js感觉还是不太适合编程入门
update: 原来大家都知道。。。
#27-18 - 2021-1-29 20:51
妄想是不治之症
谁说不是呢,真的阴间
但是还能怎么办。学都学了.jpg
其实java和python都有学过。都是学到循环就宣告放弃。这js我还坚持得挺久的。可能因为比较看得见成果吧(
虽然还什么都不会,但是已经可以瞎b写网页了呢
ekibun 说: 这for循环太阴间了,上面var a=i 改成const a=i 也是对的。js感觉还是不太适合编程入门
update: 原来大家都知道。。。
但是还能怎么办。学都学了.jpg其实java和python都有学过。都是学到循环就宣告放弃。这js我还坚持得挺久的。可能因为比较看得见成果吧(
虽然还什么都不会,但是已经可以瞎b写网页了呢

#27-19 - 2021-1-29 21:03
妄想是不治之症
基本可以说没看懂
但是在搜索let的过程中发现
var i = 5;
for (var i = 0; i < 10; i++) {
// 一些代码...
}
// 这里输出 i 为 10
let i = 5;
for (let i = 0; i < 10; i++) {
// 一些代码...
}
// 这里输出 i 为 5
刚好解答了我之前关于for的疑问
snylonue 说: 回调应该就是把一个函数传给另一个函数调用
比如
let func = function(f) { f(); };
let hello = function() { console.log("hello...

但是在搜索let的过程中发现
var i = 5;
for (var i = 0; i < 10; i++) {
// 一些代码...
}
// 这里输出 i 为 10
let i = 5;
for (let i = 0; i < 10; i++) {
// 一些代码...
}
// 这里输出 i 为 5
刚好解答了我之前关于for的疑问

#27-20 - 2021-1-29 21:15
茧
我觉得你的理解基本上是对的。
oLi.onclick=function 这一句是定义了一个click事件,如果你点击了网页上相应的element,就会执行这个function,而由于你的代码是在onload之后执行的,所以等到你点击网页触发事件的时候,for循环已经结束,function里面的oLi不再具有意义了。
function里面的this指代oLi本身,这个还挺常用的
不过我记得在HTML里面定义事件的话,需要给function的参数里面加上self,不然this就用不了
----
记错了,是this不是self
妄想是不治之症 说: 辛苦大佬。谢谢谢谢谢谢。
但是悲哀的是我尝试搜索了一下callback是什么,发现都是我根本没见过的内容,举例都看不懂……是不是属于js进阶的内容哇。
我先保留疑问,等学到再回来看
另外能不能帮我看看...
oLi.onclick=function 这一句是定义了一个click事件,如果你点击了网页上相应的element,就会执行这个function,而由于你的代码是在onload之后执行的,所以等到你点击网页触发事件的时候,for循环已经结束,function里面的oLi不再具有意义了。
function里面的this指代oLi本身,这个还挺常用的
不过我记得在HTML里面定义事件的话,需要给function的参数里面加上self,不然this就用不了
----
记错了,是this不是self
#27-21 - 2021-1-29 22:02
snylonue
这个好像是关于 var 声明变量的
妄想是不治之症 说: 基本可以说没看懂
但是在搜索let的过程中发现
var i = 5;
for (var i = 0; i < 10; i++) {
// 一些代码...
}
// 这里输出...
#28 - 2021-1-29 18:57
#29 - 2021-1-30 11:06
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#29-2 - 2021-1-30 11:28
妄想是不治之症
终于学到定时器了5555555
我学js的初心5555
一开始想学js是想实现以下效果:
1.定时切换图片abcde
2.为abcde设置不同的切换效果(渐隐或者轮滑等)
3.有角标圆点,点击可直接切换到相应图片
4.点击左右箭头切换上一张/下一张
我学js的初心5555
一开始想学js是想实现以下效果:
1.定时切换图片abcde
2.为abcde设置不同的切换效果(渐隐或者轮滑等)
3.有角标圆点,点击可直接切换到相应图片
4.点击左右箭头切换上一张/下一张
#29-4 - 2021-1-30 14:35
妄想是不治之症
记录一下闲逛翻到的python爬虫自制简易词典。
https://www.jianshu.com/p/8069ce7682b3。
好像除了数据库以外,实现假子之前说的功能并不难。
还应该可以用来自制学习词典背诵词典之类的吧。
https://www.jianshu.com/p/8069ce7682b3。
好像除了数据库以外,实现假子之前说的功能并不难。
还应该可以用来自制学习词典背诵词典之类的吧。
#29-5 - 2021-1-30 14:42
#30 - 2021-1-30 14:12
OH_toothache
(小圣杯邀请码: whyjxz14#576501)
#30-3 - 2021-1-30 15:21
妄想是不治之症
emmm……应该是我理解错了。
看到那句第一反应是"我基础差到一个刚出生的小孩都比我效率高?"
没忍住呛了一下。
不好意思。
所以能不能问下为什么和娃一起学能提高效率……
OH_toothache 说: 我是说你自己生个娃和娃一起学。
看到那句第一反应是"我基础差到一个刚出生的小孩都比我效率高?"
没忍住呛了一下。
不好意思。
所以能不能问下为什么和娃一起学能提高效率……
#30-4 - 2021-1-30 15:27
OH_toothache
不是。就是说。不然你以后还要再教娃。那不就重复劳动了。8102年了不会有人生了娃不学编程吧
妄想是不治之症 说: emmm……应该是我理解错了。
看到那句第一反应是"我基础差到一个刚出生的小孩都比我效率高?"
没忍住呛了一下。
不好意思。
所以能不能问下为什么和娃一起学能提高效率……
#34 - 2021-1-31 04:54
#35 - 2021-2-2 17:18
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#35-2 - 2021-2-4 14:39
#35-4 - 2021-2-4 18:07
妄想是不治之症
我人傻了。。又和之前写循环的时候一样了,完全不动。
我感觉我思路很对啊。为什么不动呢。
估计又是因为某些语句写错了吧……
找了半天虫,
没反应,显示Uncaught ReferenceError: imgl is not defined
可是我明明html里写了
并且上文的alert也全部包在了一个window.onload里面。
这样也出现undefined是为什么……
真的吐血了
妄想是不治之症 说: 突然发现。。。我好像。。。可以写简单的轮播图了!立刻试试
我感觉我思路很对啊。为什么不动呢。
估计又是因为某些语句写错了吧……
找了半天虫,
var arrimg = document.getElementsByClassName(imgl);
alert(arrimg.length)
没反应,显示Uncaught ReferenceError: imgl is not defined
可是我明明html里写了
<div class="imgl" ></div>
并且上文的alert也全部包在了一个window.onload里面。
这样也出现undefined是为什么……
真的吐血了
#35-5 - 2021-2-4 18:22
snylonue
imgl 是个字符串吧
妄想是不治之症 说: 我人傻了。。又和之前写循环的时候一样了,完全不动。
我感觉我思路很对啊。为什么不动呢。
估计又是因为某些语句写错了吧……
找了半天虫,var arrimg = document.getElement...
var arrimg = document.getElementsByClassName('imgl');#35-6 - 2021-2-4 20:34
妄想是不治之症
我当场吐血三升。
明天试试,代码在公司电脑上。
谢谢谢谢
snylonue 说: imgl 是个字符串吧
var arrimg = document.getElementsByClassName('imgl');
明天试试,代码在公司电脑上。
谢谢谢谢

#35-7 - 2021-2-5 10:02
妄想是不治之症
好的,错误解决了,再次感谢。
不过关键句语法好像错得很离谱……我先搁置
snylonue 说: imgl 是个字符串吧
var arrimg = document.getElementsByClassName('imgl');
不过关键句语法好像错得很离谱……我先搁置

#35-8 - 2021-2-5 10:09
妄想是不治之症
啊还是问一下吧。。。因为我刚学了一个opacity,感觉可以先设置四个div为透明,然后定时器设置每隔多少秒某个div变为不透明。。。
然后就写出了这种登西:
最后提示Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'。似乎错得有点儿远……
snylonue 说: imgl 是个字符串吧
var arrimg = document.getElementsByClassName('imgl');
然后就写出了这种登西:
var arrimg = document.getElementsByClassName("imgl")
var i = 0;
setInterval(function(){
alert(i)
getComputedStyle(arrimg).opacity = "0";
getComputedStyle(img[i]).opacity = "1";
i++;
i = i % arrimg.length;
}, 2000)最后提示Failed to execute 'getComputedStyle' on 'Window': parameter 1 is not of type 'Element'。似乎错得有点儿远……
#35-9 - 2021-2-5 10:55
snylonue
getElementsByClassName 返回的是 HTMLCollection,不能给 getComputedStyle 用
这样可以拿到单独的 Element (当然 let x = arrimg[0] 也可以) 传入 getComputedStyle,但是返回值是只读的,赋值会报错
正确写法我也不会,我只拿 js 写过脚本和一个用 Vue 写的静态网页
妄想是不治之症 说: 啊还是问一下吧。。。因为我刚学了一个opacity,感觉可以先设置四个div为透明,然后定时器设置每隔多少秒某个div变为不透明。。。
然后就写出了这种登西:
...
for (let x of arrimg) {
getComputedStyle(x).opacity = "0";
}这样可以拿到单独的 Element (当然 let x = arrimg[0] 也可以) 传入 getComputedStyle,但是返回值是只读的,赋值会报错
正确写法我也不会,我只拿 js 写过脚本和一个用 Vue 写的静态网页

#35-10 - 2021-2-5 11:20
茧
如#35-9说的,getElementsByClassName返回的不是element(从函数名本身用了Elements也可以看出来),需要从HTMLCollection里面把element提出来处理才行
修改opacity的话,用element.style.opacity就可以了吧
妄想是不治之症 说: 啊还是问一下吧。。。因为我刚学了一个opacity,感觉可以先设置四个div为透明,然后定时器设置每隔多少秒某个div变为不透明。。。
然后就写出了这种登西:
...
修改opacity的话,用element.style.opacity就可以了吧
#35-11 - 2021-2-5 13:47
妄想是不治之症
我想写的是把数组中的所有元素都设置opacity为不透明
。想省点事。
又想当然瞎写了我
snylonue 说: getElementsByClassName 返回的是HTMLCollection,不能给 getComputedStyle 用
for (let x of arrimg) {
 ...
。想省点事。又想当然瞎写了我

#36 - 2021-2-5 10:13
#38 - 2021-2-6 11:01
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#38-3 - 2021-2-6 14:05
#38-5 - 2021-2-6 17:53
Tkzc ⚥
我写的好烂
let commentCount = $("#comment_list").children().length
let array = []
for(i=0;i<commentCount;i++){
if($("#comment_list").children()[i].getElementsByClassName("message")[0].innerText == '内容已被用户删除'){
continue
}
const uid = $("#comment_list").children()[i].getElementsByClassName("tip_i icons_cmt")[0].onclick.toString().match(/,([0-9]+),0\)/)[1]
if(array.includes(uid) == false){
array.push(uid)
}
}
let win = array[Math.floor(Math.random() * array.length)]
console.log("winner is https://bgm.tv/user/"+win)我写的好烂

#38-6 - 2021-2-8 10:57
妄想是不治之症
可以说基本没看懂
Tkzc 说: let commentCount = $("#comment_list").children().length
let array = []
for(i=0;i<commentCount;i++){
...

#38-8 - 2021-2-8 14:50
妄想是不治之症
啊我对着bgm网站源码费力理解了一下,还是看懂了大概意思。
用tip_i icons_cmt是想从所有回复(不管是直接回复还是楼中楼)中抽取用户是嘛?
match(/,([0-9]+),0\)/)这一串没看懂但是估计是从地址中抓取用户id?
筛重就是如果数组里不包含这个uid,就添加这个uid至数组末尾?
(读码能力exp+100
Tkzc 说: let commentCount = $("#comment_list").children().length
let array = []
for(i=0;i<commentCount;i++){
...
用tip_i icons_cmt是想从所有回复(不管是直接回复还是楼中楼)中抽取用户是嘛?
match(/,([0-9]+),0\)/)这一串没看懂但是估计是从地址中抓取用户id?
筛重就是如果数组里不包含这个uid,就添加这个uid至数组末尾?
(读码能力exp+100
#38-9 - 2021-2-8 15:26
妄想是不治之症
!!!!!!!!!!!!感谢大佬!!!!!!我也成功写出来了55555555
实现的效果是从所有楼层回复中抽取一个用户(不包括楼中楼),重复发帖无效。
感动哭了。我竟然写出来了5555555555
(不过第一句我是照抄的大佬的……这是小瑕疵,可以忽略!
Tkzc 说: let commentCount = $("#comment_list").children().length
let array = []
for(i=0;i<commentCount;i++){
...
var commentCount = $("#comment_list").children().length
var arr = document.getElementsByClassName("userInfo");
var arruserid = []
for(i=0 ; i < commentCount ; i++){
arruserid[i] = arr[i].querySelector('a').href
}
arruserid = [...new Set(arruserid)]
var winner = Math.floor(Math.random()*(arruserid.length))
console.log(arruserid[winner])
实现的效果是从所有楼层回复中抽取一个用户(不包括楼中楼),重复发帖无效。
感动哭了。我竟然写出来了5555555555
(不过第一句我是照抄的大佬的……这是小瑕疵,可以忽略!
#38-10 - 2021-2-8 15:28
snylonue
关键字:jquery, 正则表达式
妄想是不治之症 说: 啊我对着bgm网站源码费力理解了一下,还是看懂了大概意思。
用tip_i icons_cmt是想从所有回复(不管是直接回复还是楼中楼)中抽取用户是嘛?
match(/,([0-9]+),0\)/)这一...
#38-11 - 2021-2-8 15:31
snylonue
为什么不直接用 set
妄想是不治之症 说: !!!!!!!!!!!!感谢大佬!!!!!!我也成功写出来了55555555
var commentCount = $("#comment_list").children(...

var arruserid = new Set();
for(i=0 ; i < commentCount ; i++){
arruserid.add(arr[i].querySelector('a').href);
}
arruserid = [... arruserid];
#38-12 - 2021-2-8 15:37
妄想是不治之症
因为我没有学set(扶额
是百度搜索“数组怎么筛重”之后抄来的一句代码
然后大概看了一下,知道set是一个不允许重复的数组
...new是个什么东西都没整明白。(管他呢能用就ok)
看了下我在学的教程,下一课就能学set和map了。到课上我再深入理解
snylonue 说: 为什么不直接用 set
var arruserid = new Set();
for(i=0 ; i < commentCount ; i++){
arruserid.ad...
是百度搜索“数组怎么筛重”之后抄来的一句代码

然后大概看了一下,知道set是一个不允许重复的数组
...new是个什么东西都没整明白。(管他呢能用就ok)
看了下我在学的教程,下一课就能学set和map了。到课上我再深入理解

#38-13 - 2021-2-8 15:47
妄想是不治之症
另外谢谢大佬的示范,我才发现我几乎每一句都没有标分号……羞愧了
snylonue 说: 为什么不直接用 set
var arruserid = new Set();
for(i=0 ; i < commentCount ; i++){
arruserid.ad...

#39 - 2021-2-8 11:13
#42 - 2021-2-13 13:21
#45 - 2021-2-14 17:22
#48 - 2021-2-21 20:21
#51 - 2021-2-23 22:30
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#51-1 - 2021-2-23 22:40
妄想是不治之症
为啥要这样多绕一圈

而且为什么在对f赋值的时候,右边lazy_sum的结果只计算到第一层return sum,调用f()的时候又计算了到了第二层return x+y,这个内在逻辑是咋回事
啥玩意啊,哭了

function lazy_sum(arr) {
var sum = function () {
return arr.reduce(function (x, y) {
return x + y;
});
}
return sum;
}
var f = lazy_sum([1, 2, 3, 4, 5]); // function sum()
f(); // 15为啥要这样多绕一圈


而且为什么在对f赋值的时候,右边lazy_sum的结果只计算到第一层return sum,调用f()的时候又计算了到了第二层return x+y,这个内在逻辑是咋回事

啥玩意啊,哭了



#51-2 - 2021-2-23 22:54
snylonue
因为是 “lazy” 嘛
需要用的时候才会计算
return x + y 不是在第三层吗 (传给 arr.reduce() 的闭包)
arr.reduce() 在 sum() 函数里,没有调用的时候当然不会计算
妄想是不治之症 说: function lazy_sum(arr) { var sum = function () { r...
需要用的时候才会计算return x + y 不是在第三层吗 (传给 arr.reduce() 的闭包)
arr.reduce() 在 sum() 函数里,没有调用的时候当然不会计算
#51-4 - 2021-2-23 23:13
妄想是不治之症
我费力理解下,就是说在f赋值那一句里,sum()只是作为结果出现了,并没有被调用。f被调用之后,sum才被调用了?
那f被赋值的那一句里调用了var sum = function () 里的function ()没?
snylonue 说: 因为是 “lazy” 嘛需要用的时候才会计算
return x + y 不是在第三层吗 (传给 arr.reduce() 的闭包)
arr.reduce() 在 sum() 函数里,没有调用的时候当然...
那f被赋值的那一句里调用了var sum = function () 里的function ()没?
#51-5 - 2021-2-23 23:16
妄想是不治之症
哦我傻了,匿名函数是立刻调用的,也就是说和lazy_sum同时被调用
妄想是不治之症 说: 我费力理解下,就是说在f赋值那一句里,sum()只是作为结果出现了,并没有被调用。f被调用之后,sum才被调用了?
那f被赋值的那一句里调用了var sum = function () 里的funct...
#51-6 - 2021-2-24 00:12
妄想是不治之症
for循环,阴间,太阴间了。又出现了#27类似的问题,这次稍微理解了,但是没有特别理解。
出现了一点点悖论,我好像理解错了,匿名函数也不是和最外层的函数一起被调用的,因为上面的代码我打印了一下results,结果是三个完整的函数function () {return i * i;}。证明results在被赋值的时候匿名函数没有被调用
function count() {
var arr = [];
for (var i=1; i<=3; i++) {
arr.push(function () {
return i * i;
});
}
return arr;
}
var results = count();
var f1 = results[0];
var f2 = results[1];
var f3 = results[2];
f1(); // 16
f2(); // 16
f3(); // 16出现了一点点悖论,我好像理解错了,匿名函数也不是和最外层的函数一起被调用的,因为上面的代码我打印了一下results,结果是三个完整的函数function () {return i * i;}。证明results在被赋值的时候匿名函数没有被调用
#54 - 2021-2-25 20:58
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#54-8 - 2021-2-26 22:08
#54-9 - 2021-2-27 00:06
#54-10 - 2021-2-27 00:10
#54-11 - 2021-2-27 00:17
Yinr
看做到啥程度吧...如果只是随机选几个楼层那就不需要了。
另外 alert 的话可能不好后续处理,可以增加直接自动回复中奖楼层的选项之类的
妄想是不治之症 说: 这么小的功能还需要用到api嘛?!感觉我好像对这个功能的难度有所误解…
另外 alert 的话可能不好后续处理,可以增加直接自动回复中奖楼层的选项之类的

#54-12 - 2021-2-27 08:12
茧
呃
直接抽是谁来抽呢,用户还是你呢。用户抽完的话结果怎么反馈给你呢,毕竟弹一个alert的话很好修改的。
妄想是不治之症 说: 我的初步想法是点一下按钮直接抽,结果返回到alert里…不需要返回给我

直接抽是谁来抽呢,用户还是你呢。用户抽完的话结果怎么反馈给你呢,毕竟弹一个alert的话很好修改的。
#54-13 - 2021-2-27 13:36
#55 - 2021-2-26 14:49
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#55-1 - 2021-2-26 19:59
妄想是不治之症
草,简单个屁,血压飙升了。
明明一开始说的不重复名单分组,我就按照不重复的思路写了,好不容易写完之后跟我说还是可能有重复的,让我加一行代码保证重复的值不在一个组。
这是一行代码能搞定的事?
这他妈我得整个推翻重写…
明明一开始说的不重复名单分组,我就按照不重复的思路写了,好不容易写完之后跟我说还是可能有重复的,让我加一行代码保证重复的值不在一个组。
这是一行代码能搞定的事?
这他妈我得整个推翻重写…
#55-2 - 2021-2-26 21:15
妄想是不治之症
因为坚持认为按照原来的方式写,只需维护几行就能实现,结果杂七杂八加了无数行也没能成功,现在全删掉了
,一片空白。
元宵节我就不继续折磨自己了,明天再重写。
妄想是不治之症 说: 草,简单个屁,血压飙升了。
明明一开始说的不重复名单分组,我就按照不重复的思路写了,好不容易写完之后跟我说还是可能有重复的,让我加一行代码保证重复的值不在一个组。
这是一行代码能搞定的事?
这他妈我得...
,一片空白。元宵节我就不继续折磨自己了,明天再重写。
#55-3 - 2021-2-26 21:22
妄想是不治之症
记录一下新想的思路:先确定种子选手和轮空,剩下的乱序排列,再按顺序填到各小组去。
妄想是不治之症 说: 因为坚持认为按照原来的方式写,只需维护几行就能实现,结果杂七杂八加了无数行也没能成功,现在全删掉了,一片空白。
元宵节我就不继续折磨自己了,明天再重写。
#55-5 - 2021-2-27 11:34
#56 - 2021-2-27 22:03
#60 - 2021-3-5 00:05
#62 - 2021-3-12 10:03
#63 - 2021-3-12 22:33
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#63-1 - 2021-3-13 10:57
妄想是不治之症
我人都傻了。这就是所谓的初学者教程吗?
简直就像那个梗图一样……
课本:现在我们来学一下canvas,画线条是path.moveTo(),写文字是.fillText(),各位都懂了吗?是不是很简单呢。
现在练习一下:请根据163数据画出30天交易日的k线图
简直就像那个梗图一样……
课本:现在我们来学一下canvas,画线条是path.moveTo(),写文字是.fillText(),各位都懂了吗?是不是很简单呢。
现在练习一下:请根据163数据画出30天交易日的k线图
#63-2 - 2021-3-14 01:48
ekibun
promise知道 宏任务 和 微任务 的差别就差不多了
题目要不写个 协程池 吧:
比如写bgm的爬虫,bgm总共有30w的条目,但是bgm限制同时最多只能有10个http请求,要想最快请求完所有条目,就得尽可能保证同时有10个请求在进行。
假设我有一个请求函数列表,调用它就会建立一个请求并返回一个Promise,实现一个函数,能够同时等待n个Promise,并在其中任何一个Promise返回后调用列表的下一个请求函数创建一个新的Promise,直到列表所有的请求函数都调用完。
可以用下面的例子测试:
testReqs包含5个请求函数,第i个请求函数会在调用的时候输出start i并等待i秒在控制台输出done i,并resolve返回的promise。同时请求的数量为2。那么控制台输出应该为(括号内为程序运行时间)
题目要不写个 协程池 吧:
比如写bgm的爬虫,bgm总共有30w的条目,但是bgm限制同时最多只能有10个http请求,要想最快请求完所有条目,就得尽可能保证同时有10个请求在进行。
假设我有一个请求函数列表,调用它就会建立一个请求并返回一个Promise,实现一个函数,能够同时等待n个Promise,并在其中任何一个Promise返回后调用列表的下一个请求函数创建一个新的Promise,直到列表所有的请求函数都调用完。
可以用下面的例子测试:
const testReqs = new Array(5).fill(0).map((_,i)=> async ()=>{
console.log(`start ${i}`);
await new Promise((res)=>setTimeOut(res, i * 1000));
console.log(`done ${i}`);
});
function run(reqs, n){
// your code here
}
run(testReqs, 2);
[00s]start 0
start 1
done 0
start 2
[01s]done 1
start 3
[02s]done 2
start 4
[04s]done 3
start 5
[06s]done 4
[09s]done 5
#63-3 - 2021-3-14 01:53
咕咕子❶
canvas可以放一下, 我这个6年老前端也不太会, 因为基本没用上过
学前端不是有什么就怼什么, 东西太多了, 假如目标是要一份工作, 可以百度面试通常问什么
妄想是不治之症 说: 我人都傻了。这就是所谓的初学者教程吗?
简直就像那个梗图一样……
课本:现在我们来学一下canvas,画线条是path.moveTo(),写文字是.fillText(),各位都懂了吗?是不是很简单...
学前端不是有什么就怼什么, 东西太多了, 假如目标是要一份工作, 可以百度面试通常问什么

#63-4 - 2021-3-14 14:10
妄想是不治之症
我应该是基本告别代码这一行了
我还不信邪研究了半天(真的半天)最后还是宣告不会。
唯一的成果是看懂题目了
ekibun 说: promise知道 宏任务 和 微任务 的差别就差不多了
题目要不写个 协程池 吧:
比如写bgm的爬虫,bgm总共有30w的条目,但是...

我还不信邪研究了半天(真的半天)最后还是宣告不会。
唯一的成果是看懂题目了


#63-5 - 2021-3-15 02:27
ekibun
虽然我确实是故意为难你的,但打击到积极性就真的抱歉了
楼下的代码思路大概是这样的:
第一步:建立n个promise协程
首先创建一个长度n的数组,然后map到一个闭包函数,这个函数是async开头的所以返回的是promise,那么我们得到了一个长度n的promise数组,Promise.all用来等待所有的协程执行完:
第二步:按顺序取出请求并调用
我们把每一个promise当作一个运行作业的协程,每一个协程里面加入一个循环,每次从请求列表里面取出一个请求并调用(req.shift()是取出并删除数组的第一个元素,这里元素是一个返回promise的函数,所以这里再加一个()调用它并得到promise),直到没有新的请求:
重点在第二步,await的作用和then一样,每次await都会暂停当前协程的运行,并等待promise的返回,这样一来不同的协程会交替地从请求数组中取值调用,并在请求结束后重复上述过程。
妄想是不治之症 说: 我应该是基本告别代码这一行了 我还不信邪研究了半天(真的半天)最后还是宣告不会。 唯一的成果是看懂题目了

楼下的代码思路大概是这样的:
第一步:建立n个promise协程
首先创建一个长度n的数组,然后map到一个闭包函数,这个函数是async开头的所以返回的是promise,那么我们得到了一个长度n的promise数组,Promise.all用来等待所有的协程执行完:
Promise.all(new Array(n).fill(0).map(async () => {
// todo
}))我们把每一个promise当作一个运行作业的协程,每一个协程里面加入一个循环,每次从请求列表里面取出一个请求并调用(req.shift()是取出并删除数组的第一个元素,这里元素是一个返回promise的函数,所以这里再加一个()调用它并得到promise),直到没有新的请求:
Promise.all(new Array(n).fill(0).map(async () => {
while(req.length) {
await req.shift()()
}
}))#63-6 - 2021-3-15 09:31
妄想是不治之症
原来是真的故意为难啊!
生气了喂!
不过愿意写解析帮了大忙了
还是感谢!!!我下班了再看看!
ekibun 说: 虽然我确实是故意为难你的,但打击到积极性就真的抱歉了
楼下的代码思路大概是这样的:
第一步:建立n个promise协程
首先创建一个长度n的数组,然后map到一个闭包函数,这个函数是async开头...
生气了喂!
不过愿意写解析帮了大忙了
还是感谢!!!我下班了再看看!#63-7 - 2021-3-15 11:09
ekibun
这不是为了对应#63-1的梗图吗hhh,不过这确实是我写爬虫遇到的问题,看懂了可以试试:
自己封装一个 CancelablePromise
附答案: https://juejin.cn/post/6844903533393772557
妄想是不治之症 说: 原来是真的故意为难啊!生气了喂!
不过愿意写解析帮了大忙了还是感谢!!!我下班了再看看!
自己封装一个 CancelablePromise
附答案: https://juejin.cn/post/6844903533393772557
#65 - 2021-3-14 14:48
#67 - 2021-3-17 21:07
#68 - 2021-3-17 22:07
#70 - 2021-3-21 14:49
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#70-1 - 2021-3-21 15:22
茧
所以你需要在callback里面手动改变arr
大概是这种感觉
forEach does not directly mutate the object on which it is called but the object may be mutated by the calls to callbackfn
arr.forEach((item, index) => {
if (...) {
ele = ...
arr[index] = ele;
...
大概是这种感觉
#72 - 2021-3-23 23:10
妄想是不治之症
(水中月是天上月,眼前喵是心上喵)
#75 - 2022-2-12 23:10

又是钻牛角尖的一天





