html
<div id="例1表示場所"></div>
script
function 例1() {
var 出力 = "最初の文" + "<br>";
出力 += "次の行 <a href='aaa/html'>aaa</a>へのリンク";
document.querySelector('#例1表示場所').innerHTML = 出力;
}
結果:例1表示場所が次のようになる
最初の行
次の行 aaaへのリンク
html
<div id="例2選択場所">
最初の行
次の行 <a href='aaa/html'>aaa</a>へのリンク
</div>
:
<div id="例2表示場所"></div>
script
function 例2() {
document.querySelector('#例2表示場所').innerHTML
= document.querySelector('#例2選択場所').innerHTML;
}
結果:例2表示場所が次のようになる
最初の行
次の行 aaaへのリンク
html
<div id="例3選択場所"> // ①
<script> // ②
function 例3() {
var x = 100;
if (x < 50) var y = 0;
else y = 1;
}
</script> // ③
</div> // ④ ここまでが選択場所 表示では①~④を削除
:
<div id="例3表示場所"></div>
script
function 例3() {
var 入力文 = document.querySelector('#例3選択場所').innerHTML;
var 出力文 = "";
var 行 = [];
行 = 入力文.split("\n"); // \nによる分離(改行)
for (var i=2; i<行.length-2; i++) { // select の間だけを表示(①~④を削除)
行[i] = 行[i].replace(/</g, "&lt;"); // < の特殊文字への変換
行[i] = 行[i].replace(/>/g, "&gt;"); // >
行[i] = 行[i].replace(/ /g, "&nbsp;"); // 半角空白
出力文 += 行[i] + "<br>"; // 改行の復活
}
document.querySelector('#例3表示場所').innerHTML = 出力文;
}
結果:例3表示場所にソースリストが表示される
function 例3() {
var x = 100;
if (x < 50) var y = 0;
else y = 1;
}
複数の要素を取得する場合、querySelectorAll にします。
その結果は、NodeListという配列に似たオブジェクトが返されます。
「例4」①②のように、選択では .innerHTML をつけず、個々の要素に .innerHTML をつけます。
html
<div class="aaa">class="aaa" の div</div>
<div class="bbb">class="bbb" の div</div>
<p class="aaa">class="aaa" の p</p>
:
<div id="例4表示場所"></div>
script
function 例4() {
var 出力 = "";
var 入力 = document.querySelectorAll(".aaa"); // ①
for (var i = 0; i < 入力.length; i++) {
出力 += 入力[i].innerHTML + "<br>"; // ②
}
document.querySelector('#例4表示場所').innerHTML = 出力;
}
結果:例4表示場所に次の2要素が表示される。
class="aaa" の div
class="aaa" の p
html
<li>li要素</li>
<li class="red">li要素 class="red"</li>
<ul>
<li>ul内部のli要素</li>
</ul>
<p>li要素ではない</p>
:
<div id="例5表示場所"></div>
script
function 例5() {
var 出力 = "";
var 入力 = document.querySelectorAll("li");
for (var i = 0; i < 入力.length; i++) {
出力 += 入力[i].innerHTML + "<br>";
}
document.querySelector('#例5表示場所').innerHTML = 出力;
}
結果:例5表示場所に次の3要素が表示される。
li要素
li要素 class="red"
ul内部のli要素
タグ<h3> または タグ<h4> または class="ccc" の要素を取り出す。
html
<h3>h3</h3>
<h4 class="xxx">h4 class="xxx"</h4>
<p class="ccc">p class="ccc"</p>
script
document.querySelectorAll("h3, h4, .ccc");
結果
h3
h4 class="xxx"
p class="ccc"
html
<ol>
<li>① ol⊃ li</li>
<ul>
<li>② ol ⊃ ul ⊃ li</li>
</ul>
</ol>
<ul>
<li>③ ul ⊃ li</li>
<ol>
<li>④ ul ⊃ ol ⊃ li</li>
</ol>
</ul>
script
document.querySelectorAll("ol li");
結果
①、②、④
script
document.querySelectorAll("ol > li");
結果
①、④
<input type="text" ~> の要素を選択する。
script
document.querySelectorAll("input[type='text']");
<div id="入力"> 内での<input type="text" ~> の要素を選択する。
script
document.querySelectorAll("#入力 input[type='text']");
チェックボックス「input type="checkbox"」で name="果物" についてチェックの有無を示す。
HTML
<input type="checkbox" name="果物" value="ミカン" checked></input>
<input type="checkbox" name="果物" value="リンゴ"></input>
<input type="checkbox" name="果物" value="バナナ"></input>
script
var 要素 = document.querySelectorAll("input[type='checkbox'][name='果物']");
for (var e of 要素) {
console.log(e.value, e.checked);
}
結果:コンソールログの表示
ミカン true
リンゴ false
バナナ false
class="ddd" の要素の背景色を赤にする
HTML
<p class="ddd">① p class="ddd"</p>
<div>② div classなし</div>
<h4 class="ddd">③ h4 class="ddd"</h4>
script
var 入力 = document.querySelectorAll(".ddd");
for (var i = 0; i < 入力.length; i++) {
入力[i].style.backgroundColor = "red";
}
① p class="ddd"