我有一个名称按字母排序的数组。 安迪 阿尔伯特 安德里亚 伯特 伯恩哈德 丹尼尔
现在我需要标记与A-Z匹配的名字 的安迪 阿尔伯特 安德里亚 的伯特 伯纳德 的丹尼尔
有什么想法吗?
<li class="first">Andy</li>
<li class="second">Andrea</li>
<li class="second">Albert</li>
<li class="first">Bernard</li>
<li class="second">Bert</li>
这是一个大阵列。目前所有人都有class =“second”。 我只想从所有A-names匹配“A”的第一个名称改为class =“first”。
然后是从所有B-names到class =“first”匹配“B”的下一个名字,依此类推到数组的末尾。
答案 0 :(得分:0)
与querySelectorAll('li')
,Array#forEach
和Array#includes
一起使用,使用元素
var li=document.querySelectorAll('li')
var k = [];
li.forEach(function(a, b) {
var ltr = a.innerHTML.trim().slice(0, 1);
if (ltr.match(/[A-Za-z]/)) {
if (!k.includes(ltr)) {
k.push(ltr);
a.classList.add('first')
}
}
})
&#13;
.first{
color:red;
}
&#13;
<li class="second">Andy</li>
<li class="second">Andrea</li>
<li class="second">Albert</li>
<li class="second">Bernard</li>
<li class="second">Bert</li>
&#13;