概要と目標
jQueryを使って要素を
操作できるようになろう。
jQueryを使ってHTMLの要素を操作する方法を学習し、
jQueryを使ってHTMLの要素を操作する方法を学習し、
text()メソッドで、
HTMLの要素に含まれるテキストは、text() メソッドで変更したり取得したりできる。
text() ・・・ テキストを変更したり取得したりする$(セレクタ).text(変更するテキスト);
省略可
パラメータを省略すればテキストを取得できる
詳細はjQuery API Documentationを参照
text()メソッドを使ってみよう!$(function () {
/*
変更と取得
--------------------------------------- */
// text() ・・・ テキストの変更と取得
$('#item1').text('textメソッドで変更したぜ'); // 変更
var text = $('#item2').text(); // 取得
$('#text1').text(text);
});
html()メソッドで、
HTMLの要素に含まれる要素は、html() メソッドで変更したり取得したりできる。
html() ・・・ HTMLを変更したり取得したりする$(セレクタ).html(変更するHTML);
省略可
パラメータを省略すればHTMLを取得できる
詳細はjQuery API Documentationを参照
html()メソッドを使ってみよう!$(function () {
/*
変更と取得
--------------------------------------- */
// text() ・・・ テキストの変更と取得
$('#item1').text('textメソッドで変更したぜ'); // 変更
var text = $('#item2').text(); // 取得
$('#text1').text(text);
// html() ・・・ HTMLの変更と取得
$('#item3').html('<em>htmlメソッドで</em>変更したぜ'); // 変更
var text = $('#item4').html(); // 取得
$('#text2').html(text);
});
jQueryには要素を追加するメソッドがいくつか用意されている。
追加したい場所に応じて、メソッドを使い分ける。
prepend () ・・・ 子要素の先頭に追加$(セレクタ).prepend(追加するHTML);
詳細はjQuery API Documentationを参照
append () ・・・ 子要素の末尾に追加$(セレクタ).append(追加するHTML);
詳細はjQuery API Documentationを参照
before () ・・・ セレクタで指定した要素の手前に追加$(セレクタ).before(追加するHTML);
詳細はjQuery API Documentationを参照
after () ・・・ セレクタで指定した要素の後に追加$(セレクタ).after(追加するHTML);
詳細はjQuery API Documentationを参照
$(function () {
/*
変更と取得
--------------------------------------- */
// text() ・・・ テキストの変更と取得
$('#item1').text('textメソッドで変更したぜ'); // 変更
var text = $('#item2').text(); // 取得
$('#text1').text(text);
// html() ・・・ HTMLの変更と取得
$('#item3').html('<em>htmlメソッドで</em>変更したぜ'); // 変更
var text = $('#item4').html(); // 取得
$('#text2').html(text);
/*
要素を追加するメソッド
--------------------------------------- */
// prepend() ・・・ 子要素の先頭に追加
$('ul').prepend('<li>prependで追加</li>');
// append() ・・・ 子要素の末尾に追加
$('ul').append('<li>appendで追加</li>');
// before() ・・・ セレクタで指定した要素の手前に追加
$('#item3').before('<li>beforeで追加</li>');
// append() ・・・ セレクタで指定した要素の後に追加
$('#item4').after('<li>afterで追加</li>');
});
要素の中身を空にする時は、 empty() メソッド
要素のごと削除する時は、 remove() メソッドを使う。
empty () ・・・ 要素の中身を空にする$(セレクタ).empty();
詳細はjQuery API Documentationを参照
remove () ・・・ 要素を削除する$(セレクタ).remove();
詳細はjQuery API Documentationを参照
$(function () {
/*
変更と取得
--------------------------------------- */
// text() ・・・ テキストの変更と取得
$('#item1').text('textメソッドで変更したぜ'); // 変更
var text = $('#item2').text(); // 取得
$('#text1').text(text);
// html() ・・・ HTMLの変更と取得
$('#item3').html('<em>htmlメソッドで</em>変更したぜ'); // 変更
var text = $('#item4').html(); // 取得
$('#text2').html(text);
/*
要素を追加するメソッド
--------------------------------------- */
// prepend() ・・・ 子要素の先頭に追加
$('ul').prepend('<li>prependで追加</li>');
// append() ・・・ 子要素の末尾に追加
$('ul').append('<li>appendで追加</li>');
// before() ・・・ セレクタで指定した要素の手前に追加
$('#item3').before('<li>beforeで追加</li>');
// append() ・・・ セレクタで指定した要素の後に追加
$('#item4').after('<li>afterで追加</li>');
/*
要素を削除するメソッド
--------------------------------------- */
// empty() ・・・ 要素内容を空にする
$('#item5').empty();
// remove() ・・・ 要素ごと削除する
$('#item6').remove();
});
クリックした時に何かしたければ、click() メソッドを使う。
click () ・・・ クリックイベントを指定$(セレクタ).click(function() {
// セレクタの要素をクリックした時の処理
});
詳細はjQuery API Documentationを参照
click()メソッドを使ってみよう!$(function () {
// click() ・・・ クリックイベントを指定
$('.js-button').click(function () {
$('ul').append('<li>追加したリスト項目</li>');
});
});
属性を変更したり、取得したりする場合は、attr() メソッドを使う。
なお、属性を削除する場合は、removeAttr()メソッドを使う。
attr () ・・・ 属性の変更したり取得したりする$(セレクタ).attr(属性名, 変更する属性値);
省略可
【変更する属性値】を省略すれば属性値を取得できる
詳細はjQuery API Documentationを参照
removeAttr () ・・・ 属性を削除する$(セレクタ).removeAttr(削除する属性名);
詳細はjQuery API Documentationを参照
$(function () {
// attr() ・・・ 属性の変更と取得
$('.js-changeButton').click(function () {
// 属性の変更
$('img').attr('src', 'images/logo-secondary.png');
});
$('.js-getButton').click(function () {
// 属性の取得
var alt = $('img').attr('alt');
$('p').after('<p>' + alt + '</p>');
});
// removeAttr() ・・・ 属性の削除
$('.js-removeButton').click(function () {
$('a').removeAttr('target');
});
});
jQueryでCSSを設定する場合は、css() メソッドを使う
css () ・・・ CSSの変更したり取得したりする$(セレクタ).css(プロパティ名, 変更する値);
省略可
【変更する値】を省略すれば属性値を取得できる
詳細はjQuery API Documentationを参照
$(function () {
// css() ・・・ CSSの変更と取得
$('.js-changeButton1').click(function () {
// CSSの変更
$('.box1').css('background-color', '#ddd');
});
$('.js-changeButton2').click(function () {
// CSSの変更(複数)
$('.box2').css({
'background-color': '#ddd',
'color': '#666',
'padding': '1em'
});
});
$('.js-getButton').click(function () {
// CSSの 取得
var color = $('.text').css('color');
$('.text').after('<p>' + color + '</p>');
});
});
jQueryでclassを追加したり、削除したりできる。
addClass () ・・・ classを追加する$(セレクタ).addClass(class名);
詳細はjQuery API Documentationを参照
removeClass () ・・・ classを削除する$(セレクタ).removeClass(class名);
【class名】を省略すれば全てのclassを削除できる
詳細はjQuery API Documentationを参照
toggleClass () ・・・ addClass/removeClassを自動判別する$(セレクタ).toggleClass(class名);
詳細はjQuery API Documentationを参照
$(function () {
// addClass() ・・・ classの追加
$('.js-addButton').click(function () {
$('p').addClass('text');
});
// removeClass() ・・・ classの削除
$('.js-removeButton').click(function () {
$('p').removeClass('text');
});
// toggleClass() ・・・ classの削除
$('.js-toggleButton').click(function () {
$('p').toggleClass('text');
});
});
「chapter02」 › 「training」フォルダ内の「index.html」を開き、
下記の問題を解いて下さい。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>練習問題2</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<header>
<h1>練習問題2</h1>
<nav>
<button class="js-button">メニューを開閉</button>
<ul class="drawer">
<li><a href="#">Home</a></li>
<li><a href="#">About Us</a></li>
<li><a href="#">Service</a></li>
<li><a href="#">Works</a></li>
<li><a href="#">Contact</a></li>
</ul>
</nav>
</header>
<main>
<p>
ドロワーメニューを作ってみてよう。<br>
アニメーションをCSSでやってあげると、<br>
jQueryはそこまで難しくはない。
</p>
</main>
<script src="https://code.jquery.com/jquery-1.12.4.min.js" integrity="sha256-ZosEbRLbNQzLpnKIkEdrPv7lOy9C27hHQ+Xp8a4MxAQ=" crossorigin="anonymous"></script>
<script src="app.js"></script>
</body>
</html>
* {
margin: 0;
padding: 0;
}
h1 {
text-align: center;
padding: 1em;
}
button {
position: fixed;
top: 2em;
left: 2em;
z-index: 1;
cursor: pointer;
}
main {
text-align: center;
line-height: 2;
}
.drawer {
position: fixed;
top: 0;
bottom: 0;
left: -100%;
padding: 4em 0;
width: 80%;
max-width: 300px;
height: 100%;
background-color: #333;
box-shadow: 1px 0 4px rgba(0, 0, 0, .3);
list-style: none;
transition: all 0.3s ease-in-out;
}
.is-active .drawer{
left: 0;
}
.drawer a {
display: block;
padding: 1em;
color: #ccc;
text-decoration: none;
font-weight: bold;
}
.drawer a:hover {
background-color: #212121;
color: #fff;
}
$(function () {
$('.js-button').click(function () {
$('body').toggleClass('is-active');
});
});
解答例は全問題のチェックボックスが on になるとご覧いただけます。
jQueryには要素を操作する様々なメソッドがある。
text()やhtml()を使うprepend()やappend()などがある