2016-03-21 64 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>