Reputation: 45
I'm learning Javascript and having trouble. My HTML:
<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>
And 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)
}
How to click each one for an id 1 2 3 4, not 1 1 2 3 3 4? Thank
Upvotes: 1
Views: 6241
Reputation: 20313
ID need to be unique and can't start with numbers. Still if you want to go with the code.
Try this:
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)
will check if already id is there in array or not. (duplicate values will not be added).
Upvotes: 1