Questo apparentemente non funziona:
X = $td.text();
if (X == ' ') {
X = '';
}
C'è qualcosa in uno spazio unificatore o nella e commerciale che a JavaScript non piace?
.text()rimuove il markup, quindi non credo che troverai in un risultato non markup.