2009-08-19 8 views
1

J'ai une table complexe qui produit réellement une mise en page très simple. Pour de nombreuses raisons, je ne peux pas changer la sortie HTML, donc je suis essayer quelque chose dans jquery:Table complexe - Spécifique à la cible <TR>

<div id="contentDiv" class="mainContent"> 
    <table cellspacing="0" border="0" width="100%"> 
    <tr> 
    <td> 
     <table width="100%" BORDER=1 cellpadding=0 cellspacing=0 style="padding: 5px 10px 10px 10px;"> 
     <tr> 
      <TD STYLE="BACKGROUND: RED;" WIDTH="70%"> 

Au moment je joue avec la source (voir la dernière ligne ci-dessus) où je l'ai codé en dur l'arrière-plan: RED ;

Quelqu'un peut-il penser à un moyen de donner à TD une classe lorsque la page se charge pour que je puisse référencer d'autres classes dans la TD à partir de CSS? Im 99% sûr JQUERY sera mon sauveur:)

Quelque chose comme:.

table.find $ ('table table contetentDiv td ') removeClass (' triées')

????

Répondre

3

Cela fera l'affaire:

$(function() { 
    $('#contentDiv table table td:first').addClass('classToAdd'); 
}); 

Vous pouvez ensuite utiliser .classToAdd dans votre CSS. Le sélecteur utilisé dans cet extrait affectera la classe uniquement au premier élément td.

1
<div id="contentDiv" class="mainContent"> 
    <table cellspacing="0" border="0" width="100%"> 
    <tr> 
    <td> 
     <table width="100%" BORDER=1 cellpadding=0 cellspacing=0 style="padding: 5px 10px 10px 10px;"> 
     <tr> 
      <TD class="makeItRed" WIDTH="70%"> 

Essayez quelque chose comme ceci:

$(document).ready(function(){ 
     $('makeItRed').addClass('makeItBlue'); 
     $('td:contains("TestData")').addClass('makeItGreen'); 
    }); 
+0

Je l'avais besoin pour ajouter une classe car le HTML ne peut pas être édité, j'ai ajouté le stye = "background: red;" manuellement 'hors ligne' pour tester j'ai eu la bonne table et – CLiown

0

essayer avec cela. alors il peut être ajusté à vos besoins:

jQuery("#contentDiv").find("table tr td").each(function(){ 
    $(this).find("table tr td").each(function(){ 
     $(this).css("background", "blue"); 
    }); 
}); 
Questions connexes