2009-10-04 10 views
1

me reste que cette construction:JQuery - gérer en cliquant

   <div id="slider"> 
       <div id="nav"> 
        <div class="sliderPart"> 
         <a href="#computers"> 
          <strong>1</strong> 
         </a> 
        </div> 
        <div class="sliderPart"> 
         <a href="#network"> 
          <strong>2</strong> 
         </a> 
        </div> 
        <div class="sliderPart"> 
         <a href="#web"> 
          <strong>3</strong> 
         </a> 
        </div> 
        <div class="sliderPart"> 
         <a href="#support"> 
          <strong>4</strong> 
         </a> 
        </div> 
       </div> 
       <div id="slider-content"> 
        <a href="#computers" id="slider-computers" class="slider-block">Test1</a> 
        <a href="#network" id="slider-network" class="slider-block">Test 2</a> 
        <a href="#web" id="slider-web" class="slider-block">Test 3</a> 
        <a href="#support" id="slider-support" class="slider-block">Test 4</a> 
       </div> 
      </div> 

Maintenant, je dois gérer en cliquant sur « nav » et « curseur contenu » et obtenir élément cliqué href attribut.

 $('#slider').click(function(){ 
      console.log($(this)); 
     }); 

En utilisant ce code je reçois

[div # curseur]

Répondre

3

Utilisez attr pour obtenir ou définir une valeur d'attribut de l'élément:

$('#slider a').click(function(){ 
    console.log($(this).attr('href')); 
}); 

Le sélecteur #slider se réfère à l'élément div qui est la raison pour laquelle firebug sorties [div#slider]. Vous pouvez cibler des ancres dans l'aide du sélecteur ancestor descendant:

tous les matchs éléments descendants spécifiés par « descendant » d'éléments spécifié par « ancêtre ».

Ce qui signifie que de mettre l'élément descendant après l'ancêtre, séparés par un espace comme dans l'exemple ci-dessus - $('#slider a')


FYI AU VER 1,6 .prop() introduit. More Info

La différence entre les attributs et les propriétés peut être importante dans des situations spécifiques. Avant jQuery 1.6, la méthode .attr() prenait parfois en compte des valeurs de propriété lors de la récupération de certains attributs, ce qui pouvait entraîner un comportement incohérent. À partir de jQuery 1.6, la méthode .prop() fournit un moyen de récupérer explicitement les valeurs des propriétés, tandis que .attr() récupère les attributs. Par exemple, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked et defaultSelected doivent être récupérés et définis avec la méthode .prop(). Avant jQuery 1.6, ces propriétés étaient récupérables avec la méthode .attr(), mais cela ne faisait pas partie de attr. Ceux-ci n'ont pas d'attributs correspondants et ne sont que des propriétés. More Info

+0

semble bon +1, mais qu'est-ce que 'console.log' O_o – IProblemFactory

+0

Rinz - quelque chose de sortie à la console de Firebug. Une version plus fraîche de 'alerte'. – karim79

+0

Assez bien :) Merci – Ockonal