Usando jQuery na prática
29 de Março de 2008
O jQuery, sem sombra de dúvidas, revolucionou a maneira como escrevemos Javascript. Baseado no atalho $ para document.getElementById, o jQuery estendeu-o muito além do que se podia imaginar, misturando-o com a função document.getElementsBySelector.
Além do evidente aumento de produtividade, o tamanho da biblioteca impressiona: a versão 1.2.3 tem apenas 29kb para fazer tudo o que você precisa: requisições AJAX, iteração e criação de elementos DOM, tratamento de eventos... resumindo, é uma biblioteca completa, sem deixar a simplicidade de lado.
Uma coisa que deve ficar muito clara quando você começa a trabalhar com jQuery são os seletores disponíveis, baseados em CSS 1-3 e alguns adicionados pelo próprio jQuery. Sem eles, você não tem por onde começar. Então, aqui vai uma lista super-detalhada dos seletores disponíveis no jQuery.
Seletores
Os exemplos que mostrarei são baseados no seguinte markup:
<body>
<h1>jQuery Selectors</h1>
<h2>This is a visible H2</h2>
<h2 style="display: none;">This is a hidden H2</h2>
<p>This is just a dummy text.</p>
<p>This is just a dummy text too.</p>
<ul id="list" class="list-class">
<li>Item 1</li>
<li>Item 2</li>
<li>Item 3</li>
</ul>
<p>
<strong>Sample:</strong> Visit our
<a href="#" target="_blank" id="sample">sample page</a>!
</p>
<div id="empty-div"></div>
<div>
<p>
<span>
<em>Inside a span</em>
</span>
</p>
<p>
<em>Inside a paragraph</em>
</p>
</div>
<p>
<input type="button" disabled="disabled" value="Disabled button" />
<input type="button" value="Click me!" />
<button>Click me too!</button>
</p>
<p>
<input type="checkbox" id="checkbox" checked="checked" />
<label for="checkbox">I'm checked</label>
</p>
<p>
<select>
<option value="1">Option 1</option>
<option value="2">Option 2</option>
<option value="3" selected="selected">Option 3</option>
</select>
</p>
<dl>
<dt>Colors</dt>
<dd class="color">Blue</dd>
<dt>Shapes</dt>
<dd class="shape">Circle</dd>
<dt>Words</dt>
<dd class="word">Power</dd>
</dl>
</body>
CSS 1-3
-
*: qualquer elemento.$('p.comment-meta *'); // get all elements inside p.comment-meta -
E: pega qualquer elemento com o nomeE.$('div'); // get all div tags -
E:nth-child(n): em um elementoE, pega o elementonde seu pai.$('li:nth-child(2)'); // get <li>Item 2</li> -
E:first-child: em um elementoE, pega o primeiro filho de seu pai.$('li:first-child'); // get <li>Item 1</li> -
E:empty: um elementoEque não possui filhos.$('div:empty'); // get <div id="empty-div"></div> -
E:enabled: um elementoEque está ativo.$('input:enabled'); // get <input type="button" value="Click me!" /> -
E:disabled: um elementoEque está inativo.$('input:disabled'); // get <input type="button" disabled="disabled" value="Disabled button" /> -
E:checked: um elementoE(radio ou checkbox) que está selecionado.$('input:checked'); // get <input type="checkbox" checked="checked" /> -
E:selected: um elementoE(option) que está selecionado.$('option:selected'); // get <option value="3">Option 3</option> -
E F: um elementoEque tenha um filhoF.$('p strong'); // get <strong>Sample:</strong> -
E > F: um elementoFdentro deE.$('p > em'); // get <em>Inside a paragraph</em> but not <span><em>Inside a span</em></span> -
E + F: elementoFimediatamente precedido por um elementoE.$('h1 + p'); // get <p>This is just a dummy text.</p> -
E ~ F: elementosFprecedido por um elementoE.$('h1 ~ ul'); // get <ul id="list" class="list-class"> -
E,F,G: elementosE,FeG.$('h1,ul'); // get <h1> and <ul> -
E[attr]: elementosEque possuam o atributoattr.$(':checkbox[checked]'); // get <input type="checkbox" id="checkbox" /> -
E[attr^=value]: elementosEque possuam um atributoattrcujo valor inicie-se porvalue.$('[id^=empty]'); // get <div id="empty-div"></div> -
E[attr$=value]: elementosEque possuam um atributoattrcujo valor termine comvalue.$('[id$=div]'); // get <div id="empty-div"></div> -
E[attr*=value]: elementosEque possuam um atributoattrcujo valor contenhavalue.$('dd[class*=o]'); // get <dd class="color"> and <dd class="word"> -
E[attr=value]: elementos cujo atributoattrtenham valor igual avalue.$('dd[class=word]'); // get <dd class="word">
Adicionados pelo jQuery
-
:even: todos os elementos de índice par. Os índices se iniciam em zero.$('option:even'); // get <option value="1"> and <option value="3"> -
:odd: todos os elementos de índice ímpar.$('option:odd'); // get <option value="2"> -
:eq(N)e:nth(N): seleciona o elemento de índiceN.$('option:eq(0)'); // get <option value="1"> $('option:nth(1)'; // get <option value="2"> -
:gt(N): seleciona os elementos cujo índice sejam maior queN.$('li:gt(1)'); // get <li>Item 3</li> -
:lt(N): seleciona os elementos cujo índice seja menores queN.$('li:lt(1)'); // get <li>Item 1</li> -
:first: equivalente a:eq(0).$('li:first'); // get <li>Item 1</li> -
:last: seleciona o último elemento.$('li:last'); // get <li>Item 3</li> -
:parent: seleciona os elementos que têm filhos (incluindo textos).$('h1:parent'); // get <h1>jQuery Selectors</h1> -
:contains('text'): seleciona os elementos que têm o texto especificado.$('li:contains("Item 1")'); // get <li>Item 1</li> -
:visible: seleciona todos os elementos visíveis (não inclui elementos de formuláriohidden).$('h2:visible'); // get <h2>This is a visible H2</h2> -
:hidden: seleciona campos de formuláriohiddene elementos não-visíveis.$('h2:hidden'); // get <h2 style="display: none;">This is a hidden H2</h2>
Formulários
O jQuery fornece alguns atalhos para se trabalhar com campos de formulário, evitando que você tenha que usar um seletor de atributo (input[type=radio], por exemplo). Veja como é simples:
-
:input: seleciona qualquer tipo de campo de formulário (input, button, textarea, select). -
:text: seleciona campos comtype="text". -
:password: seleciona campos comtype="password". -
:radio: seleciona campos comtype="radio". -
:checkbox: seleciona campos comtype="checkbox". -
:file: seleciona campos comtype="file". -
:submit: seleciona campos comtype="submit". -
:image: seleciona campos comtype="image". -
:reset: seleciona campos comtype="reset". -
:button: seleciona campos comtype="button"ou<button></button>.
Exemplos práticos
Agora você conhece os seletores do jQuery, veja alguns exemplos mostrando como usar este framework.
- Executando códigos no após o carregamento da página (onload) - ready.html
- Zebrar uma tabela, adicionando uma classe de CSS - zebra-table.html
- Adicionar um evento
onmouseovernas linhas de uma tabela, alterando a cor de fundo - table-row.html - Iterar em uma lista de elementos retornados - iteration.html
- Mover itens de uma lista para outra - list-items.html
- Carregar HTML em um elemento - html-content.html
- Carregar dados em formato JSON - json-content.html
- Exibir/Esconder elementos - show-hide.html
O jQuery possui uma série de outras funcionalidades que não foram citadas aqui. Para mais informações, você deve acessar a documentação do projeto. Ela também está disponível em um formato muito fácil de vsualizar em Visual jQuery. Vale a pena conferir!
E se você tem dúvidas em usar ou não o jQuery em seu próximo projeto, não se preocupe. Em relação ao Javascript, será a melhor escolha que você poderia ter feito!
- Permalink
- Trackback
- Feed dos comentários
- Ao som de: New Found Glory – Never Give Up
- Posts relacionados
- Redescobrindo o Javascript com JQuery
Textos escritos por
Comentários #
[...] Simples Idéias. Por Nando Vieira. » Arquivo » Usando jQuery na prática O jQuery, sem sombra de dúvidas, revolucionou a maneira como escrevemos Javascript. Baseado no atalho $ para document.getElementById, o jQuery estendeu-o muito além do que se podia imaginar, misturando-o com a função document.getElementsBySelector. (tags: simplesideias.com.br 2008 mes2 dia29 at_home JQuery javascript ***** blog_post explicação_introdutória) [...]
Mesmo para os que, como eu, não manjam muito de Javascript,
o jQuery é muito mais fácil, justamente por causa do getElementsBySelector,
ou apenas $().
Tem gente que não gosta, mas eu gostei muito e é
o meu framework de desenvolvimento client-side hoje.
Abraço!
Opa! Ótimo post sobre jQuery!
Coloquei no meu material para indicar para quem quer conhecer jQuery. Muito bom! Parabéns!
Só que há um pequeno erro (besta, que qualquer um percebe, mas não custa avisar): Nas opções de selção por paridade, :even e :odd estão trocados!
Abraço!
@Ricardo, já atualizei o texto! ;)
[...] Usando jQuery na pr
Nando,
Seguinte, eu tenho uma dúvida: eu carrego uma pagina, utilizando o .post, quando a página é executada eu quero que retorne 3 valores. Como Fazer isso? (pode ser utilizando php, ou asp, ou outra server-side qq).
E ao retornar, ainda no javascript que chamou a pagina, como tratar esses valores retornados.
pode ser através de DOM ou XML mesmo
Thanks
Rogerio
Parabéns.. muito legal este post e realmente muito util !
Jah utilizei o JQuery antes, e voltatei a utilizá-lo.... é realmente muito prático !
#6 Rogério: Você tem um callback como parâmetro que retorna os dados da requisição. A sintaxe é $.post('/path/to/request', {arg: value}, callback), onde callback é uma função.
Opa, ótimo post..
estava navegando nos links práticos o 3 link esta quebrado
http://f.simplesideias.com.br/jquery/table-row.html
valew
Luciano, eu tinha esquecido de subir este exemplo. Já corrigi! ;)
Pessoal, estou com uma dificuldade, ou seja, estou criando uma função do click do botão no evento ready, aonde, captura os dados do botão e monta as instruções para submeter o form, porém, preciso saber antes o formulario o qual esse botão pertence para assim estar submetendo o mesmo, alguem se habilita em me ajudar.
O melhor site de referência JQuery do toda a NET.
Parabéns pelo post, me ajudou muito!!
genial! Post mto. bem estruturado, muito util, e btw adoro o theme do blog!
Valeu pelo post fernando, está muito bom!
abracos
Parabéns Nando, ótimo site,
JQuery é uma ferramenta excelente para desenvolvimento web,
obrigado por disponibilizar as informações.
Muito bom o post, principalmente para quem esta iniciando.Parabéns
Gostei muito do Post sobre jQuery Library!
Acabei de testar os exemplos e achei bem práticos.
Abraços.
Esse seus comentarios foram simplimente JQUERY !!!
parabéns !
kara.
como eu faço para pegar o campo de um input text e automaticamente atualizalo em outro campo?
PChesini: você pode fazer algo como $("#field2").val($("#field1").val());
[...] Artigo sobre jQuery voltado na parte de seletores [...]
[...] Usando jQuery na prática Tutorial sobre seletores com exemplos práticos [...]
[...] Usando jQuery na prática Tutorial sobre seletores com exemplos práticos [...]
Muito bom o post, parabens =]
No caso do $('dd[class=word]') para checar valor do atributo, como substitiria o 'word' por uma variável?
Marcelo, basta fazer algo como
$('dd[class=' + variavel + ']');ainda naum sei nada de jquery, mas so por olhar essas sitaxe vejo que vai diminuir muito o tempo de desenvolvimendo dos scripts
Muito bom mesmo, é uma biblioteca muito interessante
Uma coisa que me atraiu no Jquery, além de executar tarefas complexas de forma muito simples, é a iteroperabilidade entre os navegadores - cross-browser - programando direto em javascript é muito provável que um script que rode normal no firefox vai dar erro no iexplore, já utilizando jquery nunca mais me encomodei com isso.
Belo post
Cara, preciso fazer algo, sei que tem jeito mais não lembro como é.
è o seguinte, ao clicar em um link, preciso pegar o nome da Class, caso alguem puder ajudar agradeço.. valeu galera..
Pode fazer algo como
$("a").click(function(){ alert(this.className); });[...] de jQuery na prática? Veja aqui. Posted by Zarpa! Filed in jQuery Tags: Desenvolvimento Web, jQuery Leave a Comment [...]
[...] Usando jQuery na prática Outro tutorial interessantíssimo para se começar; aborda os conceitos básicos e mostra, de forma progressiva e “suave”, o início do caminho do jQuery. [...]
Muito bom o artigo, parabéns, apenas uma dica: diminuir o contraste das caixas de código e o background da pagina, pois nesse caso o cinza escuro com o branco fica um tanto dolorido pra visão, principalmente quando se rola a página =p
Adicionados pelo jQuery
* :even: todos os elementos de índice par. Os índices se iniciam em zero.
$('option:even'); // get and
* :odd: todos os elementos de índice ímpar.
$('option:odd'); // get
Ae amigo, você inverteu as bolas ae.. =]
Muito bom, adorei a explicação.
Fui..
Boa Israel! Já corrigi o texto!
Adeus as milhares de linhas de código para o uso do ajax por exemplo... :)
[...] http://simplesideias.com.br/usando-jquery-na-pratica/ (ótimas dicas para quem está começando sobre seletores de elementos html) [...]
Ae amigo, muito bom o material. Só uma coisa: even é par; odd é ímpar :-)
Legal.
Muito interessante.
[...] http://simplesideias.com.br/usando-jquery-na-pratica/ [...]
Deixe um comentário