我是javascript的新手,我希望您帮助我将此代码从 转换为 转换为 ,而
var el = document.getElementsByClassName('_3hqu');
for(var i=0; i<el.length;i++) {
el[i].click();
}
当我在chrome控制台中运行此代码时,它可以工作。 但是当我尝试自己的 而 代码无效时,你能帮我找到我的错误吗?
while (true)
{
if ( el[0].length != 1 )
{
if ( el[1].length = 0 )
{
el[1].click();
}
else
{
break;
}
}
else if ( el[0].length = 0 )
{
el[0].click();
}
else
{
break;
}
var el = document.getElementsByClassName('_3hqu');
}
此外,如果我想检查所有“el”,当它找到最后一个向下滚动???
检查出来
var el = document.getElementsByClassName('_3hqu');
var objDiv = document.querySelector("._1v31 .uiScrollableAreaWrap");
var n = -1;
while (true)
{
if (n == el.length)
{
break;
}
else
{
objDiv.scrollTop = objDiv.scrollHeight;
}
n = el.length;
var el = document.getElementsByClassName('_3hqu');
}
像这样的东西,但这不起作用。 我收到了错误
TypeError: Cannot read property 'scrollHeight' of null
谢谢
答案 0 :(得分:3)
for
循环可以转换为while
循环,如下所示:
for (a; b; c) {
d;
}
为:
a;
while (b) {
d;
c;
}
因此for
循环为while
只会是:
var el = document.getElementsByClassName('_3hqu');
var i = 0;
while (i < el.length) {
el[i].click();
i++;
}
答案 1 :(得分:1)
不太确定你要做什么,而是将它转换为等效的while循环
var i=0;
while(i<el.length) {
el[i].click();
i++;
}
答案 2 :(得分:0)
首先你的if块有问题:你要分配el[1].length = 0
,而不是值检查。
将其更改为:el[1].length == 0
另一行也是如此:el[0].length = 0
到el[0].length == 0
答案 3 :(得分:0)
我不知道你为什么要使用这个丑陋的而而不是用于,但这是你的代码。 这段代码的主要问题是:
length = 0
用这个你分配到长度属性值0.比较你必须使用:
length == 0
答案 4 :(得分:0)
while (true)
{
if ( el[0].length != 1 )
{
if ( el[1].length = 0 ) // should probably be a comparison (==), not an assignemnt (=)
{
el[1].click();
}
else
{
break;
}
}
else if ( el[0].length = 0 ) // should probably be a comparison (==), not an assignemnt (=). If so, will this condition every change during the loop, so that it will actually terminate at some time?
{
el[0].click();
}
else
{
break;
}
var el = document.getElementsByClassName('_3hqu'); // This should probably be done before the loop, rather than in it. Otherwise, what will `el` be before this assignment?
}