Reputation: 1439
I'm trying to create breadcrumbs from a string, something like:
var str = 'home/files/';
var crumbs = [];
crumbs = str.split('/');
var nav;
$.each(breadcrumbsUrls, function(u, i) {
if (i.length !== -1) {
nav += '<a href="'+u+'"></a> ' + i + ' <span class="arrow">→</span> ';
}
});
but I keep ending up with:
undefinedhome → files → →
the result should be:
home → files
Upvotes: 0
Views: 2477
Reputation: 459
var str = 'home/files/';
var crumbs = [];
crumbs = str.split('/');
var nav = ''; // changed
$.each(breadcrumbsUrls, function(u, i) {
if (i.length >0 ) { // changed
nav += '<a href="'+u+'"></a> ' + i + ' <span class="arrow">→</span> ';
}
});
Upvotes: 0
Reputation: 8101
Try this:
var str = 'home/files/';
var crumbs = [];
crumbs = str.split('/');
crumbs = jQuery.grep(crumbs, function(n, i){ // remove all empty values from array using this
return (n !== "" && n != null);
});
var nav = '';
$.each(crumbs, function(u, i) {
if((crumbs.length-1) != u) { // if not last record - add arrow
nav += '<a href="'+u+'"></a> ' + i + ' <span class="arrow">→</span> ';
} else {
nav += '<a href="'+u+'"></a> ' + i;
}
});
Upvotes: 1