Alko
Alko

Reputation: 1439

jQuery split and each

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

Answers (2)

sarath
sarath

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

Dhara Parmar
Dhara Parmar

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

Related Questions