# 2/1 jQuery ###### tags: `jQuery` lab01 jquery.html ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>jQuery </title> <style> header { background: #333; color: aliceblue; padding: 20px; text-align: center; margin-bottom: 10px; } </style> <script> // $(function(){ // console.log($('#container')) // }) </script> </head> <body> <header> <h1>jQuery</h1> </header> <div id="container"> <h3 id='hello'>Hello</h3> <h3 id='hello'>Hello</h3> <h3 id='hello'>Hello</h3> <hr> <h3 id="jQ">jQuery</h3> <h3 id="jQ">jQuery</h3> <h3 id="jQ">jQuery</h3> </div> <!-- <script src="../js/jquery-3.5.1.js"></script> --> <script src="https://code.jquery.com/jquery-3.5.1.js"></script> <script> // let hello = document.querySelector('#hello') let hello = document.querySelectorAll('#hello') console.log(hello) for(let i=0;i<hello.length;i++){ hello[i].addEventListener('mouseenter', enterHello) hello[i].addEventListener('mouseleave', leaveHello) } function enterHello() { this.style.color = 'red' } function leaveHello() { this.style.color = 'black' } $(function () { let iii = 'gary' $('h3#jQ').on('mouseenter', function () { $(this).css('color', 'lightblue') }).on('mouseleave', function () { $(this).css('color', 'black') }) }) </script> </body> </html> ``` lab01.html ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> </head> <body> <div id="div1"> </div> <script> document.getElementById(div1) document.querySelector('#div1') document.querySelectorAll('#div1') $('#div1') </script> </body> </html> ``` lab02 basic_filter.html ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Basic filter</title> <style> #tb { width: 400px; height: 400px; border: 2px solid black; margin: 10px auto; } tr td { border: 1px solid black; } </style> </head> <body> <table id="tb"> <tr> <td>1</td> <td>1</td> <td>1</td> <td>1</td> </tr> <tr> <td>2</td> <td>2</td> <td>2</td> <td>2</td> </tr> <tr> <td>3 <span>jQuery</span></td> <td>3</td> <td>3</td> <td>3</td> </tr> <tr> <td>4</td> <td>4</td> <td>4</td> <td>4</td> </tr> </table> <ul id="list1"> <li class="not">item</li> <li>item</li> <li>item</li> <li class="not">item</li> <li>item</li> <li>item</li> <li class="not">item</li> <li>item</li> <li>item</li> </ul> <ul id="list2"> <li>item</li> <li>item</li> <li>item</li> <li class="not">item</li> <li>item</li> <li>item</li> <li>item</li> <li>item</li> <li class="not">item</li> </ul> <script src="../js/jquery-3.5.1.js"></script> <script> $(function () { /* // :eq() 索引從0 // $('td:eq(0)').css('background', 'lightblue') // $('td:eq(3)').css('background', 'lightblue') // $('td:eq(4)').css('background', 'lightblue') // :lt() 小於索引的 $('td:lt(4)').css('background', 'pink') // :gt() 大於索引的 $('td:gt(10)').css('background', 'lightgreen') // :even $('td:even').css('background', 'red') //:odd $('td:odd').css('background', 'yellow') //:first //:last //:not $('li:eq(10)').css('background','lightblue') $('li:first').css('background','yellow') $('li:last').css('background','lightgreen') $('li:not(.not)').css('background','pink') */ //child-filter // :first-child $('tr td:first-child').css('background','lightblue') // :last-child $('tr td:last-child').css('background','lightgreen') // :nth-child(n) $('tr td:nth-child(2)').css('background','pink') //filtering // first() $('td').first().css('background','yellow') // last() $('td').last().css('background','black') //eq(n) $('td').eq(10).css('background','red') //not() $('li').not('.not').css('background','lightgreen') //has() $('td').has('span').css('background','blue') }) </script> </body> </html> ``` formSelector.html ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>form Selector</title> <style> .form{ width: 300px; height: 300px; border: 2px solid black; margin: auto; padding: 5px; } </style> </head> <body> <form class="form" id="form1"> <h3>Form one</h3> <label>Name</label> <input type="text" id="name"> <br> <label>Email</label> <input type="email" id="email"> <br> <label>Gender</label> <input type="radio" id="gender">Male <input type="radio" id="gender">Female <br> <label>Habit</label> <input type="checkbox" id="habit"><span>Movie</span> <input type="checkbox" id="habit" checked><span>Game</span> <br> <label>City</label> <select id="selectCity"> <option value="Taipei">Taipei</option> <option value="Taoyuan" selected>Taoyuan</option> <option value="Hsinchu">Hsinchu</option> <option value="Miaoli">Miaoli</option> <option value="Kaohsiung">Kaohsiung</option> </select> <br> <button class="btn" id="btn">setting</button> <button class="btn" id="disabled" disabled>setting</button> </form> <script src="../js/jquery-3.5.1.js"></script> <script> $(function(){ $(':button').css('background','blue') $(':input').css('background','yellow') $(':disabled').css('background','red') $(':selected').css('background','pink') $(':checked + span').css('background','lightblue') $('#selectCity').on('change',function(){ console.log($(':selected').val()) }) }) </script> </body> </html> ``` lab03 content_filter.html ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>content filter</title> </head> <body> <div id="container"> <h1 id="heading1">heading one</h1> <p id="para1">Hello Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempora aspernatur deserunt nisi assumenda autem voluptatum nam a vero quam fuga omnis at velit, odio, neque fugiat eum, minima illum impedit?</p> <h1 id="heading2">heading two</h1> <p class="para2">Lorem ipsum dolor sit amet consectetur adipisicing elit. Tempora aspernatur deserunt nisi assumenda autem voluptatum nam a vero quam fuga omnis at velit, odio, neque fugiat eum, minima illum impedit?</p> <h1 id="heading3">heading three</h1> <p class="para3">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Nobis commodi quos quam architecto. Minima, dolorem culpa fugit, sunt quod veritatis corrupti sapiente repudiandae quasi hic aliquam porro! Sequi, obcaecati corporis.<span style="font-style: italic;">jQuery</span></p> <h1 id="heading4">heading four</h1> <p></p> </div> <script src="../js/jquery-3.5.1.js"></script> <script> // :contains(text) $('p:contains(Hello)').css('background','lightblue') // :has(element) $('p:has(span)').css('background','lightgreen') // :empty $('p:empty()').text('test') </script> </body> </html> ``` lab04 treetraversal.html ``` <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>TreeTraversal</title> <style> #tb { width: 400px; height: 400px; border: 2px solid black; margin: 10px auto; } tr td { border: 1px solid black; } .box{ width: 50px; height: 50px; border-radius: 50%; background-color: pink; display: inline-block; margin:5px } </style> </head> <body> <table id="tb"> <tr> <td> <div class="box"></div> <div class="box"></div> </td> <td><div class="box"></div></td> <td></td> <td> <div class="box"></div> </td> </tr> <tr> <td> <div class="box"></div> </td> <td></td> <td> <div class="box"></div> </td> <td></td> </tr> <tr> <td> <div class="box"></div> </td> <td></td> <td class="stop"> <div class="box"> <span class="jq">jQuery</span> </div> </td> <td></td> </tr> <tr> <td></td> <td></td> <td></td> <td> <div class="box"></div></td> </tr> </table> <script src="../js/jquery-3.5.1.js"></script> <script> $(function(){ $('td').on('click',function(){ // console.log('123') // .childern() 往下找一層 // $(this).children('.jq').css('background','lightblue') // .find() 往下找多層 // $(this).find('.jq').css('background','yellow') // .next() // $(this).next().css('background','lightblue') // $(this).nextAll().css('background','lightblue') $(this).nextUntil('.stop').css('background','lightblue') }) }) </script> </body> </html> ```