2017-05-06 152 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

相關問題