Puedes usar la propiedad nodeName. Tienes que obtener el elemento que esta dentro de tu td y de ese obtiene su nodeName como es una cadena de texto la puedes comparar y hacer lo que quieras, si es text checkbox radio etc.
Aqui te pongo un ejemplo que recorre todos los TD de un documento y te muestra en alerts que type de los inputs tiene y si no es input te muestra el nodeName
Código:
//busco todos los td
var tds = document.getElementsByTagName("td");
size = tds.length;
for(i=0;i<5;i++){
//por cada td obtengo sus hijos
hijos=tds[i].childNodes;
tmn = hijos.length;
//si por lo menos tiene un hijo o texto, muestro el nodeName el primero
if(tmn>0){
if(hijos[0].nodeName=='input'){
alert('El primer elemto del TD'+i+' es un '+hijos[0].type);
}else{
alert('El primer elemto del TD'+i+' es un '+hijos[0].nodeName);
}
}
}
Esa propiedad no se si funciona en iexplorer, despues de todo casi nada funciona ahi =p. Prueba y avisas si funciona en todos los navegadores.