Por exemplo, existem 10 lis em um UL, e há um estilo especial no terceiro LI (como a cor é vermelho e os outros são pretos). Eu quero definir a cor de todas as outras lis - sem incluir lis vermelha - para vermelho. Neste momento, você precisa obter todos os nós irmãos de Lis Red.
Os irmãos são aqueles que são os mesmos que você, nem o anterior nem o seguinte, e pode haver (irmão) mais velho que você ou mais jovem que você. Da mesma forma, os nós do irmão são usados. Aqui está uma maneira regular de obter nós do irmão.
O código é o seguinte
função irmãos (elm) {var a = []; var p = elm.parentnode.children; for (var i = 0, pl = p.Length; i <pl; i ++) {if (p [i]! == elm) a.push (p [i]);} retornar a;}Ideia: primeiro obtenha todos os filhos do nó dos pais deste elemento. Como todas as crianças também incluem esse elemento, você deve remover -se do resultado.
Há outro método que parece estranho, que é obter o código -fonte dos nós do irmão no jQuery:
O código é o seguinte
função irmão (elem) {var r = []; var n = elem.parentnode.firstChild; for (; n; n = n.nextSibling) {if (n.nodetype === 1 && n! == elem) {r.push (n);} retorn r;}Ideia: primeiro encontre o primeiro nó filho do nó pai desse elemento e depois faça um loop para encontrar o próximo nó do irmão deste nó até que a pesquisa seja concluída.
Estou me perguntando por que o jQuery usa esse método. Esse método é mais eficiente que o primeiro método?
Após meu teste preliminar - mais de 1.500 LI, os dois métodos acima quase não têm diferença na eficiência e ambos são bem -sucedidos em alguns milissegundos. O ambiente de teste é Chrome e Firefox.
Se você precisar obter todos os nós irmãos, poderá usar qualquer um dos métodos acima.
Obviamente, verificarei os dois métodos acima no futuro. Se houver alguma diferença, eu as atualizarei.
Método de pesquisa de Node de JQuery, Pai, Filho e Nó do Irmão
JQuery.parent (expr) Encontre o nó pai, você pode passar no expr para filtrar, como $ ("span"). Parent () ou $ ("span"). Parent (". Classe")
jQuery.parents (expr), semelhante ao jQuery.parents (expr), mas procura todos os elementos ancestrais, não limitados aos elementos dos pais
jQuery.Children (expr). Retorna todos os nós filhos. Este método retornará apenas nós diretos filhos e não retornará todos os nós filhos.
jQuery.contents (), retorna todos os conteúdos a seguir, incluindo nós e texto. A diferença entre esse método e crianças () é que, incluindo texto em branco, também será usado como um
JQuery Object Returns, Children () retornará apenas o nó
jQuery.prev (), retorna o nó de irmão anterior, nem todos os nós irmãos
jQuery.prevall (), retorne todos os nós de irmãos anteriores
jQuery.Next (), retorna o próximo nó de irmão, nem todos os nós irmãos
jQuery.NexTall (), retorne todos os nós de irmãos subsequentes
jQuery.siblings (), retorna o nó do irmão, independentemente da frente e de trás
jQuery.find (expr), é completamente diferente do jQuery.Filter (EXPR). jquery.filter () deve filtrar uma parte da coleção inicial de objetos jQuery, enquanto jquery.find ()
O resultado de retorno não terá conteúdo na coleção inicial, como $ ("p"), encontre ("span"), comece a procurar <span> do elemento <p>, que é equivalente a $ ("p span")
O artigo acima JS para obter todos os nós irmãos dos elementos é todo o conteúdo que compartilho com você. Espero que você possa lhe dar uma referência e espero que você possa apoiar mais o wulin.com.