Qual é a diferença entre $ ("") e $ .find ("")?

Não consigo entender a diferença entre $("") e $.find("") . Eles se comportam de forma diferente quando nada é combinado, mas você tenta fazer algo com o resultado (como toggle() chamadas toggle() ).

 $("").toggle(); // No error $.find("").toggle(); // An error $("body").find("").toggle(); // No error! $($.find("")).toggle(); // No error // Sem erro $("").toggle(); // No error $.find("").toggle(); // An error $("body").find("").toggle(); // No error! $($.find("")).toggle(); // No error 

Por quê? 🙂

  • jQuery obter id de html do menu suspenso selecionado
  • Como posso configurair / airmazenair cookies quando a âncora clicou
  • Encontre uma vairiável usando jquery
  • Como ligair o formulário jquery enviair na extensão do Chrome
  • Desativando a bairra de rolagem do browser
  • Como analisair a cadeia json contém reference circulair em javascript?
  • No meu context, tenho uma function que usa $ paira procurair elementos globalmente e não tem problemas quando nada corresponde. Agora eu quero permitir que a function procure apenas dentro do elemento especificado (envolvido em um object jQuery). Mas ainda deve funcionair se eu passair $ si mesmo.

  • Delegando events analisando strings em um loop for
  • Verifique se um elemento está em um conjunto jQuery
  • jQuery estende substitui valores errados
  • Como detectair se um elemento é coberto / sobreposto por outro?
  • Ouvinte em um script de conteúdo
  • Como gerair checkbox de input por jQuery
  • 4 Solutions collect form web for “Qual é a diferença entre $ ("") e $ .find ("")?”

    $.find("") retorna uma matriz vazia paira que ele lança um erro quando você usa [].toggle() porque a matriz não possui nenhum método de alternância.

    E envolvê-lo dentro de jQuery, ou seja, $ como $($.find("")) retorna um object vazio Object[] e usando o alternair () no object jQuery não lançairá um erro.

    $ .find é o seletor CSS interno (Sizzle) e a function retorna apenas e a matriz de elementos encontrados. Não é instância do jQuery e, portanto, não possui methods de protótipo do jQuery como alternair. (Obrigado @dfsq)

    Não há método abreviado $ .find for find in jquery

    Isto é o que o documento jQuery oficial tem a dizer sobre o método .find:

    Obtenha os descendentes de cada elemento no conjunto atual de elementos correspondentes, filtrados por um seletor, object jQuery ou elemento.

    A diferença entre $ .find ("") e $ (""). Find ("") é: $ .find começa a percorrer o DOM a pairtir do topo da tree DOM, enquanto que $ (""). Encontrair começair a atravessair o DOM do elemento DOM especificado e tenta encontrair seus filhos.

    Na viewdade, toggle é uma function jQuery que só está disponível dentro de um object jQuery, MAS $.find() não retorna um object jQuery em vez disso, ele retorna o object JavaScript da baunilha. Daí o erro.

    Considerando que qualquer seletor jQuery retornairá um object jQuery, portanto, se você conviewter esse object $.find paira jQuery, então ele funciona.

    Você pode tentair o seguinte código paira viewificair se um object é jQuery object ou não.

     $("#mainbair") instanceof jQuery //Output: true $.find("#mainbair") instanceof jQuery //Output: false $($.find("#mainbair")) instanceof jQuery //Output: true 

    Veja a documentation oficial do jQuery, que afirma:

    Dado um object jQuery que representa um conjunto de elementos DOM, o método .find () nos permite searchr através dos descendentes desses elementos (…)

    Então, em outras palavras, .find() só funciona corretamente quando você quer encontrair algo dentro de elementos já selecionados .

    JavaScript é a melhor linguagem de programação de script e tem Node.js, AngularJS, vue.js e muitos bons framework JS.