Como selecionar irmão esquerda não-direta com jQuery?
Pergunta
<span>This is the span I want to select</span>
<div>something here</div>
<a id="start"></a>
Suponha que pode apenas US $ acesso ( '# start'),
Eu tentei $ ( '# start'). Prev ( 'espaço'), mas não funciona.
Solução
$('#start')
.parent() // gets one up
.find('span') // gets the span element
mesmo código usando jsbin sandbox
Nota:
Você não pode usar prev (), uma vez que só recebe o tag anterior e extensão, a partir da marca de âncora não é o anterior é o anterior do anterior
Obter um conjunto de elementos que contêm os irmãos anteriores únicas de cada um dos conjunto combinado de elementos. Usar uma expressão opcional para filtrar o conjunto combinado. Apenas o irmão imediatamente anterior é retornado , nem todos os irmãos anteriores.
prev([filter])
o filtro é filtrar se a marca anterior contém mais de um, como:
<div>
<span></span>
<a></a>
</div>
<a id="a2"></a>
para obter o espaço que você usa:
$('#a2').prev('span')
Outras dicas
Estranho, parece que prevAll
vai para trás, começando no primeiro logo atrás do elemento inicial e trabalhar seu caminho de volta. Faz sentido, eu suponho. De qualquer maneira, o seguinte trabalhou para mim:
//jquery :
$(document).ready(function(){
$("#start").prevAll("span:first").css("font-weight", "bold");
});
// html:
<span>This is the span I don't want to select</span>
<span>This is the span I want to select</span>
<div>something here</div>
<a id="start">Stuff</a>