JQuery - clicando punho
Pergunta
Eu tenho essa construção:
<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>
Agora eu tenho que lidar com clicando em ' nav ' e ' barra-content ' e obter href atributo elemento clicado.
$('#slider').click(function(){
console.log( $(this) );
});
Usando este código eu recebo
[div # deslizante]
Solução
Use attr
para obter ou definir valores de atributo de um elemento:
$('#slider a').click(function(){
console.log( $(this).attr('href') );
});
O #slider
selector refere-se ao elemento div que é por isso firebug saídas [div#slider]
. Você pode direcionar âncoras dentro dele usando o ancestral descendente seletor:
Combina todos os elementos descendentes especificado pelo "descendente" de elementos especificado por "ancestral".
Que meios para colocar o elemento descendente após o antepassado, separadas por um espaço, como no exemplo acima - $('#slider a')
FYI AS DE VER 1.6 .prop () introduziu. Mais informações
A diferença entre atributos e propriedades pode ser importante em situações específicas. Antes jQuery 1.6, o método .attr () às vezes levou valores de propriedade em conta ao recuperar alguns atributos, o que poderia causar um comportamento inconsistente. Como jQuery de 1,6, o método .prop () fornece uma maneira para recuperar explicitamente valores de propriedades, ao passo que .attr () recupera os atributos. Mais informações
Por exemplo, selectedIndex, tagName, nodeName, nodeType, ownerDocument, defaultChecked, e defaultSelected deve ser recuperado e conjunto com o método .prop (). Antes de jQuery 1.6, estas propriedades foram recuperadas com o método .attr (), mas esta não era dentro do âmbito da attr. Estes não têm atributos correspondentes e são apenas propriedades. Mais informações