2017-08-16 59 views
-3

你好我有一個列表,我想按姓氏過濾。我有a標籤與字母a-z。目標是當用戶點擊一個字母,然後該名單被姓氏過濾。因此,當用戶點擊「A」時,所有名字以「A」開始的列表項出現。使用jQuery選擇字符串中最後一個單詞的第一個字母

我相信我有邏輯可以顯示/隱藏元素,但我需要幫助定位最後一個單詞的第一個字母才能實現我的邏輯。

下面是HTML標記:

<ul id="theList"> 
    <li><a>John Aoe</a></li> 
    <li><a>John Boe</a></li> 
    <li><a>John Coe</a></li> 
    <li><a>John Doe</a></li> 
</ul> 

任何想法?

謝謝!

回答

1

我只是使用了一個警告,但只要這兩個名字只有兩個名字,代碼就會得到最後一個單詞的最後一個字母。 如果lastindexOf中間有一個初始值,那麼這條線將起作用。

var a = "John Aoe".split(" ").pop().charAt(0); 
 
var b = "John Coe".split(" ").pop().charAt(0); 
 
var c ="John Doe".split(" ").pop().charAt(0); 
 
var d ="Max R. Toady" 
 
var e= d.charAt(d.lastIndexOf(" ") + 1) 
 
alert(a +", " + b +", "+ c + ", " + e)

3

你可以使用正則表達式,acoording到this answer

reg = new RegExp(letterchosen+'\w+$'); 
var listwitAlastword = $('li').filter(function() { 
    return this.innerHTML.match(reg); 
    }); 
2

可以iterarate在 「禮」:

$("#theList").find("li").each(function(){ 
    var a = $(this).find("a").text().split(" "); 
    console.log(a[a.length-1].charAt(0)) 
}); 

https://jsfiddle.net/k8jjmqL5/

相關問題