Con PHP no sólo es más fácil sino que es lo correcto:
Código PHP:
Ver originalforeach($datos as $k => $d) {
if( empty($d) ) continue;
echo '<div id="contenedor-'. $k .'">'. $d .'</div>';
}
El problema del javascript es que no altera la estructura física del documento, por lo que -dependiendo del proyecto- fácilmente podemos tener 500 divs vacíos que, aunque ocultos con display none, de todas formas se imprimen en nuestro HTML.