Dette er en anden post i mit igangværende serie om hvordan man bruger jQuery med SharePoint.
Hvis du ønsker at lære mere om jQuery, Jeg kan varmt anbefale: jQuery i aktion af Bjørn Bibeault og Yehuda Katz.
Tidligere, Jeg skrev om, hvordan du bruger jQuery at lokalisere og skjule et felt i en formular. Jeg var ligeglad for den særlige tilgang (Jeg kæde forældre – det er simpelthen ikke er gjort disse dage, mindst i familier af kvalitet).
Da jeg først begyndte at tænke over det, Jeg vidste, jeg havde brug at finde en <TR> som jeg kunne påberåbe sig Skjul() metode. Min tidlige forsøg på at finde den korrekte <TR> var noget som dette:
$(«tr:har(input[titel = skjule mig!])');
Problemet med det er, at den ville finde hver <TR> Tag, der havde nogen overordnet-relation til Skjul mig! felt, selv om skjule mig! er indlejret mange niveauer dybt i <TR>'s. Det viser sig, at på min sandbox form, Dette udtryk finder 9 forskellige TR, der har skjule mig! som barn et sted i sin DOM-træet. Jeg indså, at jeg kunne gå tilbage op træet fra selve input feltet, så thats hvordan jeg endte med at misbruge forældre, men det gjorde ikke sidde godt med mig.
Jeg gav nogle tanke til dette og en af de ting jeg læste endelig gav mening: Jeg kunne bruge ikke() metode til at trimme ud <TR>er jeg ikke ønsker i min indpakket sæt. Det førte mig til dette:
$(«tr:har(input[titel = skjule mig!])').ikke(«tr:har(Tr)').Skjul();
Den første bit finder alle de <TR> koder, som har skjule mig! feltet overalt i deres egen hierarki. Det derefter strimler ud nogen <TR> der har også et barn <TR>. Det efterlader os med en enkelt <TR> der:
1) Ikke har nogen <TR> underordnede poster
2) Har input felt som barn.
Vi kan derefter anvende Skjul() metoden at den deraf følgende og vi er færdig.
Jeg er stadig en smule nervøs, men ikke så nervøs som kæde forældre.
Jeg ved ikke, om dette er en bedste praksis eller ikke. Der kan være en mere hensigtsmæssig måde at identificere netop den <TR> at vi interesserer os i en form, SharePoint. Hvis du kender, Skriv venligst en kommentar.
</slutningen>
Følg mig på kvidre på http://www.twitter.com/pagalvin
Hej Paul,
Paul Culmsee af smarte omgåelser skrev en artikel om præcis det samme problem (at finde den korrekte TR at skjule et felt) ved hjælp af almindeligt JavaScript, ikke jQuery. Han fandt en universel måde at finde TR at skjule, Det er i slutningen af denne blogpost : http://www.cleverworkarounds.com/2008/02/07/more-sharepoint-branding-customisation-using-javascript-part-1/
håbe, det hjælper,
Jonathan
Pingback: Skjule et felt i en SharePoint Rediger formular baseret på andre værdier « jbmurphy.com