You should also try this. Here conditions are written before setting CSS, which will check first and then assign the image path.
$(document).ready(function() {
    var i = 0;
    $("#n").click(function() {
        i++;
        if (i > 13){ i = 1; };
        $('body').css('background-image',  'url(images/bg/' + i + '.png)');
       //if (i === 13){ i = 1; };
    });
    $("#p").click(function() {
        i--;
        if (i <= 0) { i = 13; };
        $('body').css('background-image',  'url(images/bg/' + i + '.png)');
        //if (i === 1) { i = 13; };
    });
});
Other wise you may get wrong image paths, something like:
images/bg/0.png
or
images/bg/-1.png
1
solved how do I cycle through background images by clicking a button?