Bonjours à tous,
je ne parviens pas a pointer plusieurs balises avec précision dans un DOM un peu tordu que je ne contrôle pas.

je travail sur un environnement zendesk dont voici le lien https://dacasttest.zendesk.com

je n'est pas la main sur le html de la page mais je peut bidouiller le dom avec du jquery et changer le css.

j'aimerai prendre dans les blocks le nombre de pages (See all 18 articles ) et l'afficher dans le titre des rubriques avec jquery.

j'ai du code pour parser ma chaine de caractère

var myString = $('.see-all-articles').html();
var myRegexp = /(\d+)/g; // Numbers
var match = myRegexp.exec(myString);


et du code pour rajouter mon nombre de page a mon menu

var menu = $(".section h3").html();
menu += " ("+ match[1] +")";

$(".section h3").html(menu);



le problème c'est que tout mes blocks on pour class = section ce qui me massacre tout mes blocks avec le premier nom de menu et le premier nombre de pages.

une idée de comment je pourrai cibler mes blocks autrements ? (et après une boucle et le tour est joué !)
j'ai pensé à :nth-child mais mon cerveau est en train de fondre ^^

merci d'avance pour le coup de mains !
Modifié par levure (08 Oct 2013 - 15:52)
En fait c'est bon, oppresseur vaincu !
j'ai manqué d'acharnement ^^

$(".category .section:nth-child(3n) h3").html();

$(".category .section:nth-child(3n) .see-all-articles").html();

merci d'avoir pris le temps de m'avoir lu
Re, j'ai un souci dans ma boucle, je récupére bien mes menus et j'obtiens bien mes chaines avec mes menus et leur nombres d'articles

sauf que ma dernière ligne de boucle (le remplacement du menu par le menu numéroté ) me pourri tout mes menus dès le premier tour de boucle alors qu'il devrai cibler uniquement le premier menu.

$(".category .section:nth-child(" + i + "n) h3 a").text(menu);

une idée ? Smiley winner

merci !



  var myString;
  var myRegexp;
  var match;
  var menu;
  TabMenu= new Array(5);

  for(var i=1; i<=4; i++){
 
 // copie la chaine 'See all xx articles'
    myString = $(".category .section:nth-child(" + i + "n) .see-all-articles ").html();
//regex pour récupérer que les nombres
    myRegexp = /(\d+)/g;
// éxécution du regex
    match = myRegexp.exec(myString);

// recomposition du menu avec le nombre d'article   
    menu = $(".category .section:nth-child(" + i + "n) h3 a").html();
    menu +=" (" + match[1] + ")";
// replacement de la chaine du menu par la nouvelle chaine
    $(".category .section:nth-child(" + i + "n) h3 a").text(menu);   
  }

Modifié par levure (08 Oct 2013 - 15:54)
yop les gens,
bon bah forever alone mais j'ai trouvé !



  var myString;
  var myRegexp;
  var match;
  var menu;
  TabMenu= new Array(5);

  for(var i=1; i<=4; i++){
  
    myString = $(".category .section:nth-child(" + i + ") .see-all-articles ").html();
    myRegexp = /(\d+)/g; // Numbers
    match = myRegexp.exec(myString);
    
    menu = $(".category .section:nth-child(" + i + ") h3 a").html();
    if( match===null){}
    else{
      menu +=" (" + match[1] + ")";
         $(".category .section:nth-child(" + i +") h3 a").text(menu);
    }
  }



juste les n dans les fonctions .category .section:nth-child( <-- un jour je serai maitriser ce truc comme il faut ! Smiley biggrin

à bientôt Smiley langue