2016-03-21 33 views
0

我是js编程的新手,尝试了很多不同的方法来循环这段代码,并且问我一个比我更熟练的朋友,他也不正确。我研究了如何在js中使用循环,而且我好像被困住了,所以如果你还可以给我一个关于js中循环如何工作的基本解释,那会很棒!javascript:我如何正确地循环这个功能?

原代码

function partA() { 
var classes1 = document.getElementsByClassName('_jvpff _k2yal _csba8 _i46jh _nv5lf'); // finds follow button 
var Rate1 = classes1[0];Rate1.click(); // clicks button1 

} 

setTimeout(partB, 20000); // begins func. B about 17 seconds after func a has been completed 
function partB() { 
var classes2 = document.getElementsByClassName('_de018 coreSpriteRightPaginationArrow'); // finds “next” arrow 
var Rate2 = classes2[0];Rate2.click(); // clicks next arrow 

} 

partA(); // runs functions 

原代码本身工作正常,但似乎从来没有与我使用任何的循环工作。

最近环路尝试 - 注:失败,显然

function partA() { 
var classes1 = document.getElementsByClassName('_jvpff _k2yal _csba8 _i46jh _nv5lf'); // finds follow button 
var Rate1 = classes1[0];Rate1.click(); // clicks button1 

} 

setTimeout(partB, 20000); // begins func. B about 17 seconds after func a has been completed 
function partB() { 
var classes2 = document.getElementsByClassName('_de018 coreSpriteRightPaginationArrow'); // finds “next” arrow 
var Rate2 = classes2[0];Rate2.click(); // clicks next arrow 

} 

partA(); // runs functions 

for (i = 0; i < 30; i++) { 
text += “The number is ” + i + “<br>”; 

} 

预先感谢您! - 迈克尔

任何提示,只是普遍改善代码也将不胜感激。

+0

你是不是想有功能相互呼叫?你想用你的代码实现什么? – Beamer180

+0

我要问的是@ Beamer180上面提到的问题。对SO提出问题的一个重要部分是清楚地问他们。 –

+0

另外,有两件事:你没有在任何地方使用'text',并且你正在使用错误的引号(使用''“'''''''') – JCOC611

回答

0

仍不能工作了你到底是什么后(貌似:试图在自动化一些网页一些重复的任务,你不控制源)

<!DOCTYPE html> 
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script> 
<title>JS Loop Example?</title> 
<script> 
function foo() { 
    var div = $("#x")[0]; 
    div.innerHTML = "foo was clicked"; 
    for (i = 0; i < 5; i++) { 
     div.innerHTML += "<br />!"; 
    } 
    setTimeout(function(){ $('.barButton').click() }, 3000) 
} 
function bar() { 
    var div = $("#x")[0]; 
    while (div.firstChild) { 
     div.removeChild(div.firstChild); 
    } 
    var wibble = document.createTextNode('bar was clicked'); 
    div.appendChild(wibble); 
    for (i = 0; i < 5; i++) { 
     div.appendChild(document.createElement('br')); 
     wibble = document.createTextNode('?'); 
     div.appendChild(wibble); 
    } 
    setTimeout(function(){ $('.fooButton').click() }, 3000) 
} 
</script> 
</head> 
<body onload='setTimeout(foo, 3000)'> 
<script> 
// Up until the close of the body, I can just write into the document. 
document.write('<div id="x" class="stuffGoesHere">'); 
document.write('some random text<br />'); 
for (i = 0; i < 5; i++) { 
    document.write('#<br />'); 
} 
document.write('</div>'); 
document.write('<input type="button" class="fooButton" value="foo" onClick="foo()" />'); 
document.write('<input type="button" class="barButton" value="bar" onClick="bar()" />'); 
</script> 
</body> 
</html>