2017-05-06 154 views
-2

我有一个名称按字母顺序排列的数组。 安迪 阿尔伯特 安德烈 伯特 伯恩哈德 丹尼尔Javascript标记字母数组中的第一个字母

现在我需要来标记 丹尼尔

匹配AZ 安迪 阿尔伯特 安德烈 伯特 伯纳德的头名有任何想法吗?

<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名称中的“A”匹配才能更改为class =“first”。

然后,下一个名称与所有B名称中的“B”匹配到class =“first”,依此类推到数组末尾。

+0

https://www.w3schools.com/jsref/jsref_obj_regexp.asp – mayooran

+0

欢迎使用到如此用用!你试过什么了?为了帮助我们,请添加[最小,完整和可验证示例](https://stackoverflow.com/help/mcve) – abpatil

+0

嗯!对不起,我没有得到你的问题。您能否详细解释一下标记与A-Z相匹配的名字是什么意思?这不是全部吗? – M98

回答

0

querySelectorAll('li')Array#forEachArray#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') 
 
    } 
 
    } 
 
})
.first{ 
 
color:red; 
 
}
<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>

+0

错误在哪里? – prasanth

+0

如果您单击“运行代码段”按钮。 li.forEach不是函数 – murge

+0

您的代码有效。很棒的功能,非常感谢你! – murge

相关问题