2010-03-01 53 views
7

Estos son algunos códigos JS simples que me permiten verificar si una celda está vacía.¿Usar javascript para verificar si una celda de tabla HTML está vacía?

Estoy tratando de codificar una función llamada "onmouseover = func()"; Simplemente no puedo entender el código JS. ¿Algunas ideas?

Lo que estoy tratando de trabajar idealmente es un código que pueda determinar si una celda está vacía y, de ser así, coloque un valor simple, como "Celda vacía".

Sé que probablemente suena simple, pero podría necesitar un poco de ayuda. Gracias por cualquier idea.

Respuesta

2

Si está utilizando jQuery, use el método html() en el elemento. Dada esta marcado:

<td id="my_cell"></td> 

Este código lo hará:

if ($('#my_cell').html() == '') { 
    $('#my_cell').html('Cell Empty'); 
} 
+0

Esta pregunta no menciona nada de jQuery por lo que esto no responde a la pregunta. – cletus

+1

Si está utilizando jQuery, necesita usar '.html()' en lugar de '.innerHTML'. – Aistina

+0

Vaya, estás en lo cierto. Editado para ser html(). –

3

Depende un poco en lo que será allí inicialmente. En mi experiencia, las tablas se comportan de manera extraña si una celda contiene solo espacios en blanco, por lo que una solución común es poner un &nbsp; allí para detener el colapso. De todos modos, aquí está cómo se haría el ingreso:

function elementIsEmpty(el) { 
    return (/^(\s|&nbsp;)*$/.test(el.innerHTML); 
} 

function replaceCell(td) { 
    if (elementIsEmpty(td)) { 
     td.innerHTML = 'Cell Empty'; 
    } 
} 


<td onmouseover="replaceCell(this)"></td> 

... aunque de una manera mejor sería aplicar los comportamientos a través de controladores de eventos de JavaScript.

+0

Ese comportamiento extraño por el camino solo se aplica en IE6/7. No procesará toda la célula, incluido su marcado. Por lo general, la falta de color en el borde o el fondo se nota por primera vez. – BalusC

1

withouth jQuery (como en los viejos buenos tiempos):

function func(e){ 
    var target = window.event ? window.event.srcElement : e ? e.target : null; 
    if (target.innerHTML === ''){ 
     target.innerHTML = 'Cell Empty!'; 
    } 
} 
+1

usted, señor, tiene una extraña definición de "bueno". – nickf

+1

señor, siento que no puede entender los comentarios irónicos. – Matias

Cuestiones relacionadas