我正在解析一些带有 url 作为 ID 的 div,如果存在相同的 url/ID,我想绕过它。因此,在每次追加时,我都在搜索 100 个 div 以找到所有这些 div 所具有的属性的相同值。
例子:
HTML:
<div data-id="http://stackoverflow.com"></div>
<div data-id="http://engadget.com"></div>
<div data-id="http://9gag.com"></div>
<div data-id="http://reddit.com"></div>
<div data-id="http://facebook.com"></div>
<div data-id="http://stackoverflow.com"></div>
<div data-id="http://twitter.com"></div>
<div data-id="http://mashable.com"></div>
所以如果存在stackoverflow,绕过:
$('div[data-id="http://www.stackoverflow"]').length
使用纯 js 最快的方法是什么?
编辑:
因此,在尝试之后,我认为它更复杂:
由于我必须先附加内容,然后查找具有某个值属性的数据 ID 是否存在两次,因此我正在努力通过该过程以实现最快的方式。
这是我的HTML:
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://engadget.com">http://engadget.com</div>
<div class="ele" data-id="http://9gag.com">http://9gag.com</div>
<div class="ele" data-id="http://reddit.com">http://reddit.com</div>
<div class="ele" data-id="http://facebook.com">http://facebook.com</div>
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://twitter.com">http://twitter.com</div>
<div class="ele" data-id="http://mashable.com">http://mashable.com</div>
<div class="ele" data-id="http://bbc.com">http://bbc.com</div>
<div class="ele" data-id="http://twitter.ca">http://twitter.ca</div>
<div class="ele" data-id="http://google.com">http://google.com</div>
<div class="ele" data-id="http://apple.com">http://apple.com</div>
<div class="ele" data-id="http://cnn.com">http://cnn.com</div>
<div class="ele" data-id="http://imgur.com">http://imgur.com</div>
<div class="ele" data-id="http://9gag.com">http://9gag.com</div>
这是我的js:
var a = document.getElementsByClassName("ele")
for (i=0;i<a.length;i++) {
var b = a[i].getAttribute("data-id");
if (document.querySelectorAll('div[data-id="' + b +'"]').length > 1){
console.log(a[i])
}
}
这将输出:
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://9gag.com">http://9gag.com</div>
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://stackoverflow.com">http://stackoverflow.com</div>
<div class="ele" data-id="http://9gag.com">http://9gag.com</div>
其中 9gag.com 和 stackoverflow.com 都存在两次以上。
我如何只留下一个并删除其余的?&这是实现这一目标的最快方法吗?