1

我正在学习 Javascript 并且遇到了麻烦。我的 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>

和 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?感谢

4

1 回答 1

1

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。(不会添加重复值)。

演示小提琴

于 2013-08-27T08:31:42.563 回答