Thank you for this Daniel, it makes few things clearer in my mind. (I do read the doc but it doesn't always translate as well :))
On Mar 31, 8:26 pm, Daniel Friesen <nadir.seen.f...@gmail.com> wrote: > Speed has absolutely nothing to do with this. You are trying to speed > compare methods that do completely different things: > > $('#foo'); // select the element with the id #foo > $('#foo > .bar'); // select the elements with the class bar that are > direct children of the element with the id #foo > $('#foo').find('.bar'); // select the elements with the class bar that > are direct children of the element with the id #foo > $('.foo').filter('.bar'); // select all elements with the class foo then > filter that list to only include the ones that also have the class bar > $(e.target).closest('li'); // given a node for an event, backtrack > through the document to find the closest li node (this is meant for > event delegation type tasks) > > Using $(this+' > .quantite') WILL NOT WORK when /this/ is a document node. > You have to use $(this).find('> .quantite'); or > $(this).children('.quantite'); should work to. > > ~Daniel Friesen (Dantman, Nadir-Seen-Fire) > > Gilles wrote: > > Ah zut, I forgot the >, and I was hoping i could actually help on that > > one lol, but otherwise this would work normaly no? > > (sorry to ask but newbie so I check to make sure) > > > $(this+' > .quantite') (also I think it's mention somewhere in this > > group that find is faster (for the moment only)) > > > Also would the new closest() method work? > > > $(this).closest('.quantite'); (is that faster or slower than the above > > or / and find) > > > On Mar 31, 5:27 pm, Daniel Friesen <nadir.seen.f...@gmail.com> wrote: > > >> If /this/ is a node as I expect it is in that context, it should > >> actually be $(this).find('.quantite'); > > >> ~Daniel Friesen (Dantman, Nadir-Seen-Fire) > > >> Gilles wrote: > > >>> Bonjour! > > >>> Stupid question, but you have made sure to wrap your code inside $ > >>> (function(){ /* your code */ }); yes? > >>> As otherwise JQuery might have trouble locating what you need if it > >>> isn't. > > >>> Also could you provide the HTML source as rendered by the browser, it > >>> makes copy/pasting/testing easier :) > > >>> $("this ~ .quantite") is wrong tho i believe it should be $(this > >>> +'.quantite') as this is a variable > > >>> (unless it is interpreated as variable between double quote like in > >>> PHP, but I am pretty sure it doesn't) > > >>> On Mar 31, 3:14 pm, elpatator <romain.simi...@gmail.com> wrote: > > >>>> Although Jquery offers multiple ways in selecting DOM elements, I > >>>> can't figure out how to do this, as i'm not that good at it. > >>>> Here's the deal : > >>>> my html goes like this > >>>> <logic:iterate id="ligneCommande" name="commande" > >>>> property="lignesCommande" indexId="index"> > >>>> <div class="ligneArticle"><c:set > >>>> var="nbLigneCommandes" > >>>> value="${nbLigneCommandes+1}" /> > >>>> <bean:define id="articleId" > >>>> name="ligneCommande" > >>>> property="article.id" /> > > >>>> <div > >>>> class="blocGauche"><bean:define id="articleId" > >>>> name="ligneCommande" > >>>> property="article.id" /> > >>>> <img > >>>> class="visuelArticle" src="/images/visuelsArticles/dim1/$ > >>>> {ligneCommande.article.articleReference.reference}_dim1.jpg" > >>>> height="60" width="60" /> > > >>>> <span class="libelleArticle"> > >>>> <bean:write > >>>> name="ligneCommande" > >>>> property="article.articleReference.libelle" /> > >>>> </span> > >>>> </div> > >>>> <div class="blocDroit"> > >>>> <span > >>>> class="prixUnitaire"> > >>>> <bean:write > >>>> > >>>> name="ligneCommande" property="prixUnitaire" format="" > >>>> formatKey="main.format.prix"/> > >>>> <input > >>>> type="hidden" class="prixProduit" name="prix${index}" > >>>> value="${ligneCommande.prixUnitaire}"></input> > >>>> <input > >>>> type="hidden" > >>>> > >>>> name="montantDeLigne${index}" value="$ > >>>> {ligneCommande.prixTotal}"></input> > >>>> </span> > > >>>> <table > >>>> class="calculette"> > >>>> <tr> > >>>> <td> > >>>> > >>>> <html:text styleClass="quantite" > >>>> property="quantiteLigneCommande(${ligneCommande.id})" styleId="$ > >>>> {ligneCommande.id}"/> > >>>> </td> > >>>> <td> > >>>> > >>>> <img class="plus" src="/images/quantiteIncrement.gif" > >>>> alt="Plus" /> > >>>> </td> > >>>> <td> > >>>> > >>>> <img class="moins" src="/images/quantiteDecrement.gif" > >>>> alt="Moins" /> > >>>> </td> > >>>> </tr> > >>>> </table> > > >>>> <div > >>>> id="montantDeLigneAfficher${index}" class="prixTotal"> > >>>> <bean:write > >>>> name="ligneCommande" property="prixTotal" format="" > >>>> formatKey="main.format.prix" /> > >>>> </div> > >>>> </div> > >>>> <div class="clear"></div> > >>>> </div> > >>>> <div class="clear"></div> > >>>> </logic:iterate> > > >>>> As you can see, I iterate on each line, that's named .ligneArticle ; > >>>> What I wish to do is, on click on > >>>> <img class="plus" src="/images/quantiteIncrement.gif" alt="Plus" /> or > >>>> <img class="moins" src="/images/quantiteDecrement.gif" alt="Moins" />, > >>>> traverse back up from my button, in order to get it's current (and > >>>> unique) lingneArticle, to get back down and work on quantity input. > >>>> Right now, my js looks likes this : > >>>> $(".plus").click(function (){ > >>>> var quantite = $("this ~ .quantite").val(); > >>>> quantite++; > >>>> if (quantite<=0){ > >>>> quantite=0; > >>>> } > >>>> $("this ~ .quantite") > >>>> .text(quantite) > >>>> .val(quantite); > >>>> calculMontantPanier(); > >>>> }); > > >>>> $(".moins").click(function (){ > >>>> var quantite = > >>>> $(this).find(".quantite:input").val(); > >>>> quantite--; > >>>> if (quantite<=0){ > >>>> quantite=0; > >>>> } > >>>> $(this).find(".quantite:input") > >>>> .text(quantite) > >>>> .val(quantite); > >>>> calculMontantPanier(); > >>>> }); > > >>>> As you can see, my probleme is related to DOM crawling back up from $ > >>>> (this) (my button), and then down to it's direct > >>>> neigbour .quantite:input . > > >>>> Thanks for your help. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "jQuery Development" group. To post to this group, send email to jquery-dev@googlegroups.com To unsubscribe from this group, send email to jquery-dev+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/jquery-dev?hl=en -~----------~----~----~----~------~----~------~--~---