2013-08-27 47 views
0

我正在學習Javascript並遇到問題。 我的HTML:Javascript單擊()循環

<a id="1" class="same" href="1">click</a> 
<a id="1" class="same" href="1">click</a> 
<a id="2" class="same" href="1">click</a> 
<a id="3" class="same" href="1">click</a> 
<a id="3" class="same" href="1">click</a> 
<a id="4" class="same" href="1">click</a> 

和JS:

var dataall = []; 
var a = document.querySelectorAll('.same'); 
for (var i = 0; i < a.length; i++) { 
    var id = a[i].id; 
    dataall.push(id); 
} 
data = dataall.filter(function(elem, pos) { 
    return dataall.indexOf(elem) == pos; 
}) 
i = 0; 
Click(data, i); 

function Click(data, i) { 
    setTimeout(function() { 
     document.getElementById(data[i]).click(); 
     if (i < data.length) { 
      i++; 
      Click(data, i); 
     } else { 
      alert('done'); 
     } 
    }, 10000) 
} 

如何點擊每一個的ID 1 2 3 4,而不是1 1 2 3 3 4? 感謝

+1

ID必須是唯一的。 – Konsole

+2

'ID'應該是唯一的,爲什麼你有多個'a'標籤具有相同的'ID'呢? –

+2

而ids不能以數字開頭。 – putvande

回答

0

ID必須是唯一的,不能以數字開頭。如果你想要使用代碼。

試試這個:

var dataall = []; 
var a = document.querySelectorAll('.same'); 
for (var i = 0; i < a.length; i++) { 
    var id = a[i].id; 
    if(dataall.indexOf(id)==-1) 
    dataall.push(id); 
} 
data = dataall.filter(function(elem, pos) { 
    return dataall.indexOf(elem) == pos; 
}) 
i = 0; 
Click(data, i); 

function Click(data, i) { 
    setTimeout(function() { 
     if (i < data.length) { 
      alert("id: "+data[i]); 
      document.getElementById(data[i]).click(); 
      i++; 
      Click(data, i); 
     } else { 
      alert('done'); 
     } 
    }, 100) 
} 

if(dataall.indexOf(id)==-1)將檢查是否已經存在對應ID陣列與否。 (重複值不會被添加)。

DEMO FIDDLE

+0

它給出的警報是準確的 如何通過ID獲得點擊? – nguyentu

+0

檢查更新的代碼和演示 – Unknown

+0

謝謝,但不工作 – nguyentu