Adding "0" if clock have one digit

currentMinutes is a number, so it does not have the length property. Also, you must check the length before set the currentMinutes to the minutes element.

Something like:

var currentHours = currentTime.getHours();
var currentMinutes = currentTime.getMinutes();

$.ajax({
    success: function (clock) {
        if (currentMinutes.toString().length == 1) {
            currentMinutes = "0" + currentMinutes;
        }

        document.getElementById("hour").firstChild.nodeValue = currentHours;
        document.getElementById("minutes").firstChild.nodeValue = currentMinutes;
    }
});

You may use .slice to extract a portion of a string. Pass a negative number to it, in order to slice from the end of the string.

Therefore, the following is possible, and quite simple:

('0'+currentMinutes).slice(-2)

Concatenating with '0' makes sure that the target of the operation will always be a string. ('0'+currentMinutes) will yield a 2 or 3 letter string ("07" or "017", for instance). Slicing the last two characters off that string will give you a 0-padded two-digit number.

Note that the above would yield "00" if currentMinutes is 100, so it assumes that you know the values you'll be working with.

This could be extracted to something more reusable:

Number.prototype.zeroPad = function() {
   return ('0'+this).slice(-2);
};

That would allow you to write:

currentMinutes.zeroPad();

You could also make the length of the padding variable:

Number.prototype.zeroPad = function(length) {
   length = length || 2; // defaults to 2 if no parameter is passed
   return (new Array(length).join('0')+this).slice(length*-1);
};

Which could be called as:

currentMinutes.zeroPad(); // e.g. "07" or "17"
currentMinutes.zeroPad(3); // e.g. "007" or "017"

Note that while currentMinutes.zeroPad() will work, 7.zeroPad() would not.