Introdução ao jQuery

Felippe Alex Scheidt · Capítulo 18 de 27

Páginas do PDF

Introdução ao jQuery

3.8 Funções de busca

</script>

</head>

<body>

<button id="start">Começar!</button><br> <img id="foto" src="../imagens/carro.png"/>

</body>

</html>

 

3.8 Funções de busca

 

Função each()

A função each permite navegar através de cada um dos elementos do DOM, verificando ou alterando suas propriedades de modo individual se assim necessário. Considere o código a seguir, que permite ao usuário digitar um nome, e à medida que as teclas são digitadas, a função each é chamada para percorrer todas as <li>s verificando se o conteúdo da <li> possui o texto informado pelo usuário:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<title>Função Each</title>

<style>

.off{background-color:#CCC;}

.on{background-color:red;}

li{

border-radius:4px; padding: 8px;

background-color:navy;

color:white;display:inline;

}

ul{list-style: none;}

input.busca{

margin-left: 40px;width: 350px;

height: 25px;font-size: 16px;

padding: 4px;

}

</style>

<script src="jquery.js"></script>

<script>

$(document).ready(function(){

$("#filtro").keyup(function(){

var termo = $('#filtro').val().toLowerCase();

$('ul.nomes li').each(function(index){

$(this).addClass('off');

$(this).removeClass('on');

var li_texto = $(this).text().toLowerCase(); if(li_texto.search(termo) != -1

&& termo.length>1){

$(this).removeClass('off');

$(this).addClass('on');

}

});

});

});

</script>

</head>

<body>

<input type="text" id="filtro" class="busca"/> <ul class="nomes">

<li>Adriana</li>

<li>Alice</li>

<li>Fabiana</li>

<li>Fabiano</li>

<li>Fernando</li>

<li>Fabrício</li>

<li>Marcos</li>

<li>Maria</li>

<li>Marta</li>

</ul>

</body>

</html>

 

O seletor :contains()

Este seletor permite selecionar elementos que contenham uma determinada palavra ou texto. No exemplo a seguir, o seletor procura por todos os parágrafos que contenham a string "library" e logo em seguida aplica no texto a cor vermelha. Neste caso, apenas o primeiro parágrafo será selecionado.

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<script src="jquery.js"></script>

<script>

$(document).ready(function(){

$("p:contains('library')").css("color","red");

});

</script>

</head>

<body>

<p>

One important thing to know is that jQuery is just a JavaScript

library. All the power of jQuery is accessed via JavaScript, so having

a strong grasp of

JavaScript is essential for understanding, structuring, and

debugging your code. 

</p>

<p>

While working with jQuery regularly can, over time, improve your

proficiency with JavaScript, it can be hard to get started writing

jQuery without a working knowledge of JavaScript's built-in

constructs and syntax.

</p>

</body>

</html>

 

Encadeamento de funções

O jQuery permite que sejam chamadas funções de objetos de modo encadeado, isto é, cada chamada de função opera sobre o resultado retornado pela função anterior. Para exemplificar essa característica, vejamos o código a seguir:

$(document).ready(function(){

var nav = $("nav.main");

var lista = nav.children("ul");

lista.css("color","red")

lista.children(":first").css("background-color","yellow");

});

O código acima obtém a referência a uma lista contida dentro do elemento nav e modifica seu CSS para deixar o texto na cor vermelha. Logo em seguida, obtém o primeiro elemento filho e aplica a cor amarelo como cor de fundo. Este mesmo código poderia ser reescrito numa única declaração usando chamada encadeada de funções:

$("nav.main").children("ul").css("color","red").children(":first").css("background-

color","yellow");

 

Função data

Com o uso dos atributos data-* do HTML5 podemos adicionar dados e informações aos elementos. Para acessar estes dados, o jQuery oferece a função data() . Considere o exemplo a seguir:

<!DOCTYPE html>

<html>

<head>

<meta charset="utf-8"/>

<title>Função Data</title>

<script src="jquery.js"></script>