2017-08-16 3 views
-3

Hallo Ich habe eine Liste, die ich nach Nachnamen filtern möchten. Ich habe a Tags mit dem Alphabet a-z. Das Ziel ist, wenn ein Benutzer auf einen Buchstaben klickt, wird die Liste nach Nachnamen gefiltert. Wenn also ein Benutzer auf "A" klickt, erscheinen alle Listenelemente mit dem Nachnamen, der mit "A" beginnt.Wählen Sie den ersten Buchstaben des letzten Wortes in einer Zeichenfolge mit jQuery

Ich glaube, ich habe die Logik, um die Elemente anzuzeigen/zu verbergen, aber ich brauche Hilfe beim Anzielen des ersten Buchstabens des letzten Wortes, um meine Logik zu implementieren. Hier

ist die HTML-Markup:

<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> 

Irgendwelche Ideen?

Danke!

Antwort

1

Ich habe gerade eine Warnung verwendet, aber der Code wird den letzten Buchstaben des letzten Wortes erhalten, solange es nur zwei Namen gibt. Die Zeile lastindexOf funktioniert, wenn sie eine mittlere Initiale haben.

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

Sie regex verwenden könnte, acoording zu this answer:

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

Sie können über "li" 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/

Verwandte Themen