2009-05-07 7 views

Respuesta

6

Estoy ejecutando el código en un evento de clic. El html que has escrito es casi perfecto, pero por alguna razón desconocida para mí no está funcionando. Aunque he encontrado un trabajo. (Estoy tratando de obtener una cadena delimitada por comas de todos los valores en la primera td para las filas visibles) De todos modos, el siguiente trabajo hace el trabajo.

var notfirst = false; 
    var serials = ""; 
    var tds = $("table.SimpleTable tbody tr:visible td:first-child"); 
    for (var i = 0; i < tds.length; i++) { 
     var td = $(tds[i]); 
     if (td.is(":hidden")) 
      continue; 
     if (notfirst) 
      serials += ","; 
     else 
      notfirst = true; 

     serials += $.trim(td.text()); 
    } 

Por alguna razón el: Etiqueta oculta funciona correctamente pero no el Visible en IE7

6

Eso debería trabajo. Con HTML que se ve así:

<table class='SimpleTable'> 
    <tr style='display: none;'> 
    <td>test1</td> 
    </tr> 
    <tr> 
    <td>test2</td> 
    </tr> 
    <tr> 
    <td>test3</td> 
    </tr> 
    <tr style='display: none;'> 
    <td>test4</td> 
    </tr> 
    <tr> 
    <td>test5</td> 
    </tr> 
    <tr> 
    <td>test6</td> 
    </tr> 
</table> 

Hacer esto:

$("table.SimpleTable tbody tr:visible td:first-child").css('color','red'); 

Hace que el color rojo en Firefox, Internet Explorer 7 para mí. ¿Cómo se ve tu HTML?

Here's what I tested the above on

EDITAR: Es muy raro para mí que usted tiene que hacer lo que estás haciendo en este momento. Usted debe ser capaz de reemplazar lo que tienes ahora con esto:

var serials = []; 
$("table.SimpleTable tbody tr:visible td:first-child").each(function() { 
    serials.push($.trim($(this).text())); 
}); 
var serials = serials.join(','); 

Si las anotaciones están siendo llenados desde el selector Sólo deben ser las visibles. Si usted está recibiendo anotaciones ocultas en las publicaciones periódicas (que, debo subrayar, no debe realmente estar ocurriendo y es un error o una señal de un error en alguna parte), tratar este selector en su lugar:

$("table.SimpleTable tbody tr:not(:hidden) td:first-child") 
+0

Cuando tengo la oportunidad voy a tratar el selector usted ha mencionado. Sin embargo, me gustan los serails.push() y los seriales. Unirme (",") mucho mejor de lo que tengo y lo implementaré con seguridad. Gracias. –

3

De la documentación:

"Cómo: visible se calcula fue cambió en jQuery 1.3.2 Elemento asume como visible si ella y sus padres consume espacio en el documento visibilidad CSS no se tiene en cuenta ..."

Quizás esto tiene algo que ver con eso. Intente utilizar un selector de clase o algo en lugar de tr: visible

3

¿por qué no lo divide un poco?

$("table.SimpleTable").find("tr:visible").find("td:first-child").text() 

?

+0

he usado esto para una sola selección, gracias útiles. – merveotesi

Cuestiones relacionadas