The square brackets return a specific DOM-node from the jQuery object/collection, rather than a jQuery object; which fails because the native DOM node has no text() method. So, instead, you should use:
$('.content').append('<br>' + $ispan.eq(i).text());
Proof of concept
Note, in the linked 'proof-of-concept,' that I amended the approach to append the elements, switching it to:
$ispan.eq(i).text('span ' + (i+1)).appendTo('.content').before('<br />');
This is because, with the approach written above (which you say works, in the comments) the output was lots of [Object object] in the .content element.
The above alternative finds the relevant element in the jQuery object, sets its text, appends it to the .content element then inserts a <br /> before the appended element.
Also, your original selector should be adequately replaced by $('span'), rather than an over-complicated jQuery-wrapped native DOM selector.
You say, in comments elsewhere, that you need to work on a 'specific set' of span elements, which I'm assuming is why you use the for() {...}, you could instead use :gt():
var $ispan = $("span:gt(4)");
$ispan.text(function (i) {
return 'span ' + (i + 6);
}).appendTo('.content').before('<br />');
JS Fiddle demo.
References:
$(window.test.document.getElementsByTagName("span"));by$('span')