新手的Javascript代码

时间:2015-04-11 10:50:16

标签: javascript

我是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

谢谢

5 个答案:

答案 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 = 0el[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?
}