忍者ブログ

からすまる日誌 JavaScript

基本(15) 配列とリスト  おにぎり、カレー、餃子、ラーメン

×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

基本(15) 配列とリスト  おにぎり、カレー、餃子、ラーメン

昔の記述の方法でまた実験してみましょう。
 
<script>の読み込み位置を本来の場所に戻してから
<body>すぐにあと追加
 
<p name="p1" id="p1"></p>
name(古い記述方法)もid(新しい方法)もとりあえず付けておく。
 

 
test1.jsにも追加
 
 document.p1.innerHTML = 'あいうえお';
 
→読み込みなおすとエラーが出る。
Uncaught TypeError: Cannot set property 'innerHTML' of undefined 
 
できそうでできない訳です。
 

 
では、getElementByIdでオブジェクト化してやりましょう。
 
--->test1.js
 
var str = document.f1.t1.value;
console.log(str);
//要素オブジェクト
//document.p1.innerHTML = 'あいうえお';
var p1 = document.getElementById('p1');
p1.innerHTML = 'あいうえお';
 
→これでちゃんと表示された。
・・・静的オブジェクトを動かすにあたっては、こういう経緯と歴史がありましたというお話。
 
 


Web safe colorの一覧表をつくろう
そのまえにからあげでサンプル。
 
今回の狙い:
今回cssの外部ファイル読み込みはしない。スクリプトも。一枚だけで完結させたいので。
 
スタイルシートは<head>内で定義をする。(きょうび普通はやらない。今回は特別に)
 
<head>
<meta charset="utf-8">
<title>Web Safe Color</title>
<style>
</style>
</head>
 

<body>内はulの空要素だけ置く。
 
<body>
<ul id="chart"></ul>
<script>
</script>
</body>
 
スクリプトも今回外部ファイル読み込みでなくhtmlに直接書きますよ。
 

雑談3:
チキンラーメンのおはなし

backgroundも直接記述。consoleも。
--->いままで。
 
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Web Safe Color</title>
<style>
body{
background:#cfc;
}
</style>
</head>
<body>
<ul id="chart"></ul>
<script>
 console.log('ok');
</script>
</body>
</html>
 

<ul>のなかに<li>を7つ追加。(これはデザイン用なので後で消す)
 
<style>の中に・hogeの中黒を消すためと、左詰めにするために追加。
横並びにするためdisplay:flex;を追加
折り返せのflex.wrap:wrap;もいれておく。
#chartのなかの子孫セレクタliに対しても記述する。
6列にするため横幅を16.6666ぐらいにする
パディングも入れよう。
横幅の考え方をボーダーまで考えた分にしろよもいれる。
上下左右にボーダーも入れよう。空白で区切る。順番はどうでもいい。
 
 
--->いままで
 
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Web Safe Color</title>
<style>
body{
 background:#cfc;
}
#chart{
 list-style-type:none;
 padding:0;
 display:flex;
 flex-wrap:wrap;
}
#chart li {
 box-sizing:border-box;
 width: 16.66%;
 text-align:center;
 padding:1rem;
 border: solid 1px #fff;
}
</style>
</head>
<body>
<ul id="chart">
<li>hoge</li>
<li>hoge</li>
<li>hoge</li>
<li>hoge</li>
<li>hoge</li>
<li>hoge</li>
<li>hoge</li>
<li>hoge</li>
</ul>
<script>
 console.log('ok');
</script>
</body>
</html>
 

デザインはいったんこのくらいで。
 
ダミーの<li>7つは消す。
consoleも消す。
配列いきますよ。
 
<script>
var foods = ['おにぎり','カレー','餃子','ラーメン'];
</script>
 
配列をつくるときは普通に変数作るときのように宣言する。
慣例として変数名を複数形にする。 
 

さて、この配列をさっきのリストに表示させたい。できる?
ヒント
1.親要素を取得(親要素を事前にオブジェクトして取得しておく必要がある)
2.子要素を生成する(ループ処理をつかうか使わないかはともかく、要素をクリエイトしないといけない)(createElement(*メソッド))
3.子要素にコンテンツを入れる(中身をいれる)(innerHTML(*プロパティ))
4.子要素を親要素に追加(appendChild)

 
(ちょっと設定をかえます)
サクラエディタ→設定→タイプ別設定一覧→javascript/「一時適用」ボタン
 
これでHTMLで記述していてもscriptに色がつく
 

 
--->サンプルでヒントを
 
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="utf-8">
<title>Web Safe Color</title>
<style>
body{
 background:#cfc;
}
#chart{
 list-style-type:none;
 padding:0;
 display:flex;
 flex-wrap:wrap;
}
#chart li {
 box-sizing:border-box;
 width: 16.66%;
 text-align:center;
 padding:1rem;
 border: solid 1px #fff;
}
</style>
</head>
<body>
<ul id="chart">
</ul>
<script>
var foods = ['おにぎり','カレー','餃子','ラーメン'];
var ul = document.getElementById('chart');
var ele = document.createElement('li');
ele.innerHTML = 'からあげ';
ul.appendChild(ele);
</script>
</body>
</html>


このサンプルではからあげは1こだけは入った。次に続く。
PR

コメント

ただいまコメントを受けつけておりません。

ブログ内検索

P R