トップページへ戻る

1、jQueryセレクタの練習

すべての要素を選ぶ

メソッドチェインについて。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
h3 { 
margin: 0;
} div,span,p { padding: 10px; margin: 10px; background-color: #EEEEEE; } </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("button").click(function(){ var elementCount = $("*").css("border","3px solid red").length;
$("body").append("<h3>" + elementCount + " 個の要素が見つかりました</h3>");
}); }); </script>
</head> <body> <div>DIV</div> <span>SPAN</span>
<p>P <button>Button</button></p> </body> </html>

要素セレクタ(特定のタグだけを選択する)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
div,p {
padding: 10px;
margin: 10px;
background-color: #EEEEEE;
} div#main { width: 400px; } </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("button").click(function(){ $("div,p").css("border","3px solid red");
}); }); </script>
</head> <body> <div id="main"> <div id="notMe">
<p>id="notMe" これは選ばれる</p> </div> <div id="myDiv">id="myDiv" 選ばれます</div>
<div id="notMe2">
<p>id="notMe" 選ばれる</p> </div> <button>Button</button> </div> </body> </html>

クラスセレクタ(クラスを指定して選択する)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
div,span {
padding: 10px;
margin: 10px;
background-color: #EEEEEE;
} p.en { background-color: #FFee33; } </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("button").click(function(){ $(".select p").css("border","3px solid red");
}); }); </script>
</head> <body> <div class="select">
<p>ここが選ばれます</p> </div> <div class="myDiv">これは、選ばれません</div>
<div class="select">
<p>ここが選ばれます</p> </div> <div class="select">
<p class="en">ここが選ばれます</p> </div> <button>Button</button> </body> </html>

IDセレクタ (IDのものだけを選択する)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
div,span {
padding: 10px;
margin: 10px;
background-color: #EEEEEE;
} </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("button").click(function(){ $("#myDiv").css("border","3px solid red");
}); }); </script>
</head> <body> <div id="notMe">
<p>id="notMe" これは選ばれないIDです</p> </div> <div id="myDiv">id="myDiv" これだけが選ばれます(IDはbody内に一個しか無い)</div>
<div id="notMe2">
<p>id="notMe" これは選ばれません</p> </div> <button>Button</button> </body> </html>

複数のセレクタ(いくつかの要素やID、クラスなどをカンマ区切りで指定して選択する)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
div,span {
padding: 10px;
margin: 10px;
background-color: #EEEEEE;
} </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("button").click(function(){ $("#notMe,#notMe2,#myDiv").css("border","3px solid red");
}); }); </script>
</head> <body> <div id="notMe">
選ばれます </div> <div id="myDiv">選ばれます</div>
<div id="notMe2">
選ばれます </div> <button>Button</button> </body> </html>

子要素の選択(二つ別々に選ぶ場合、半角区切りで、タグやクラス、IDを書く。一個のまとまりとして選ぶ場合は、「>」で区切る)

どう違うのかは、実行するとよく分かります。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
div {
margin: 10px; padding: 10px;
background-color: #EEEEEE;
} </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("#t1").click(function(){ $("#notMe div div").css("border","3px solid red");
}); $("#t2").click(function(){ $("#notMe > div > div").css("border","3px solid red");
}); }); </script>
</head> <body> <div id="notMe">
<div>
<div>
ここが選ばれます<div>ここも選ばれます</div>
</div>
</div>
<div>ここは選ばれません</div>
</div> <div id="myDiv">選ばれません</div>
<div id="notMe2">
<p>これは選ばれません</p> </div> <button id="t1">Type1</button> <button id="t2">Type2</button> </body> </html>

兄弟要素の選択(例の場合、id="ch"と同じ階層にあるdivをすべて選択)

兄弟要素とは、同じ階層にある要素のことです。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
div,span {
padding: 10px;
margin: 10px;
background-color: #EEEEEE;
} </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("button").click(function(){ $("div ~ div").css("border","3px solid red");
}); }); </script>
</head> <body> <div id="notMe">
<div id="ch">
<div>
選ばれない<div>選ばれない</div>
</div>
</div>
<div>ここが選ばれる</div> <p>選ばれない</p> <div>ここが選ばれる</div>
</div> <button>Button</button> </body> </html>

直後の兄弟要素の選択(例の場合、id="ch"の直後の兄弟要素がdivのものを一個選択)

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
div,span {
padding: 10px;
margin: 10px;
background-color: #EEEEEE;
} </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("button").click(function(){ $("#ch + div").css("border","3px solid red");
}); }); </script>
</head> <body> <div id="notMe">
<div id="ch">
<div>
選ばれない<div>選ばれない</div>
</div>
</div>
<div>ここが選ばれる</div> <p>選ばれない</p>   <div>選ばれない</div>
</div> <button>Button</button> </body> </html>

フォームの中の、リストやチェックボックスの「選ばれている項目」の選択。クリックごとに、現在選択されている項目をチェック。

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<style type="text/css">
div,span {
padding: 10px;
margin: 10px;
background-color: #EEEEEE;
} </style> <script type="text/javascript" src="jquery-1.6.1.min.js"></script> <script type="text/javascript"> $(function(){
$("input:checkbox").click(function(){
var j="";
$("input:checked").each(function(){
j+=$(this).val()+" : " ;
});
$("#mess").html(j);
});
$("select").change(function(){
var j="";
$("option:selected").each(function(){
j+=$(this).val()+" : " ;
});
$("#mess2").html(j);
}); }); </script>
</head> <body> <form> <input type="checkbox" value="yamada" /> <input type="checkbox" value="morita" /> <input type="checkbox" value="kusunoki" /> <input type="checkbox" value="saito" /> <input type="checkbox" value="yamamoto" /> <select multiple="multiple"> <option value="A">A</option> <option value="B">B</option> <option value="C">C</option> <option value="D">D</option> <option value="E">E</option> </select> </form> <div id="mess"></div> <div id="mess2"></div> </body> </html>

課題1

上の例をjq10〜18.htmlとして、public_html/tomcat/mobile2011に保存して、動作を確認しておいてください。

正常に動くことを確認しておいてください。