Månadsarkiv: Maj 2011

Ännu mer jQuery–Ändra storlek på en bild-exempel

Jag ärvt en webbdel från en gammal klienttillverkaren och har ett imageproblem storlek.  Bilderna ska vara 60×50 men av någon udda anledning, den ursprungliga leverantören tvingade dem till 42×42, så det ser ut squashed:

 

Bra bild

Dålig bild

Här är markering (något förenklat):

<tabell klass = "extended-outlook">
  <thead>
    <TR>
      <TH  bredd = 100′>3 Tisdag</TH>
    </TR>
  </thead>

  <tbody>
    <TR klass = "prognos">
      <TD bredd = "100′>
        <UL>
          <Li klass = 'hög'>Hög: 72&deg;F</Li>
          <Li klass = "låg">Låg: 44&deg;F</Li>
          <Li klass = "villkor">Soliga
            <img src =’
http://deskwx.WeatherBug.com/images/Forecast/icons/Localized/60×50/en/trans/cond007.PNG’ Bredd ='42’ höjd ='42’ ALT =” />
          </Li>
        </UL>
      </TD>
    </TR>

  </tbody>

</tabell>

Du ska notera att även om den sökvägen till själva bilden visar korrekt (60×50) den ursprungliga leverantören tvingade det 42×42.  Varför?  Galen.

Hur som helst, Jag ville ha en snabb och enkel lösning på denna fråga och jag vände sig till jQuery.  Tricket var att hitta alla de tillämpliga <IMG> taggar.  Ville inte dölja med andra img-taggar (som finns det många).  Denna bit av jQuery gjorde tricket:

<skript type = "text/javascript" src ="http://Ajax.googleapis.com/Ajax/libs/jQuery/1.5/jQuery.min.js"></skript>

<skript type = "text/javascript">
     $(dokument).redo(funktionen () {

         $("li.condition > IMG ").varje(funktionen (index, objekt)
           
{
             $(objekt).CSS("bredd", "60"); 
             $(objekt).CSS("höjd", "50");
            });
     }); // Om dokumentet belastning
</skript>

Den biten av kod finner insamling <Li> Märken vars klass är "villkor" och <IMG> barn.  Det går sedan igenom allt detta.  Arbetade som en charm.

Jag skulle förmodligen effektivisera det, men jag aldrig var en slags unix kille som löst π till 18 siffror precision med hjälp av sed och awk och jag är inte sådan om jQuery guy antingen Leende.

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin

Parsning av XML med LINQ

Här är en snabb exempel med LINQ för att tolka vissa  XML- och få vid söta, söt attribut däri.

Här är jag vill parsa XML:

<?XML-version = "1.0" Encoding = "utf-8" ?>
<DeafultConfigurationSets>
  <PageLayouts>

    <PageLayout namn = "xyzzy">
      <Flikar>
        <Fliken TabOrder = "1" TabLabel = "x" SharePointContentType = "en" AdditionalConstraints = "ac1" />
        <Fliken TabOrder = "2" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
      </Flikar>
    </PageLayout>

    <PageLayout namn = "xyzzy2">
      <Flikar>
        <Fliken TabOrder = "100" TabLabel = "x" SharePointContentType = "en" AdditionalConstraints = "ac1" />
        <Fliken TabOrder = "101" TabLabel = "y" SharePointContentType = "b" AdditionalConstraints = "ac2" />
        <Fliken TabOrder = "103" TabLabel = "z" SharePointContentType = "c" AdditionalConstraints = "ac3" />
      </Flikar>
    </PageLayout>

  </PageLayouts>
</DeafultConfigurationSets>

Jag vill bygga upp vissa flikar under körning av tolkning av ovanstående.  Mina flikar är beroende av en sidlayout.  Om min sida layoutens namn är "xyzzy2" då jag vill få flikar 100, 101 och 103 (flikarna i <PageLayout namn = "xyzzy2">).

Här är LINQ som gör det:

var allTabs =
              från p i
                  XElement.Parse(theXmlToParse).
                 
Element("PageLayouts").
                  Element("PageLayout")
              där (p.Attribute("namn").Value.Equals("xyzzy2"))
              från m i p.Elements("Flikar").Element("Tab")
              Välj m;

          Results.text = sträng.Tom;

          foreach (var aTab i allTabs)
          {
              Results.text =
                  "Tabbordning: " + aTab.Attribute("TabOrder").Värde + " |" +
                  "Fliken etikett: " + aTab.Attribute("TabLabel").Värde + " | " +
                  "SharePointContentType: " + aTab.Attribute("SharePointContentType").Värde + " | " +
                  "AdditionalConstraints: " + aTab.Attribute("AdditionalConstraints").Värde + "r";
          }

I ovanstående, variabeln "theXmlToParse" är en strängvariabel, men du kan använda lasten() metoden på en dataström om du gillar.

"Resultat" är en etikett på ett webbformulär och när denna kod körs, Det ser ut så här:

SNAGHTML11cd2e7c

Jag har inte räknat ut hur du sorterar resultaten ännu, så jag lämnar som för ett framtida blogginlägg.

</slutet>

Prenumerera på min blogg.

Följ mig på Twitter vid http://www.twitter.com/pagalvin