Hatena::Groupnadesiko

雪乃☆雫のなでしこ日和

2019-08-27

「DOM要素作成」と「DOM子要素追加」の使い方

| 09:18

 始めに作ったHTMLに、要素を追加したい時、どうするのかという

 HTML設定だと、追加ではなくまるっと書き換えてしまうから、困ったもんだって感じなんですよねー。

 「DOM要素作成」とか「DOM子要素追加」とか、それっぽい名称の命令はあるものの、説明は何も無いし、どうするもんだかさっぱり分からずで、しようが無いから元のHTML追加した形のHTMLを作って、っくり再設定するか、予め追加するためのdivなどを設けたHTMLにして置くなどしていましたが、このほどようやく使い方を理解したので、メモっておく。

#「DOM要素作成」と「DOM子要素追加」の使い方

#①追加したいDOMを新規作成する。
EL=「button」のDOM要素作成。
ELに「OK」をテキスト設定。
ELの「id」に「OK_btn」をDOM属性設定。 //idを設定

#②追加したい先のDOM要素を取得する。
PA=「nako3_div_1」のDOM要素ID取得。

#③「②」で取得したPAへ「①」で作成したELを追加する。
PAへELをDOM子要素追加。
//DOM親要素へELをDOM子要素追加。 //(DOM親要素なら直に追加出来る)

#使えるようになる!
「#OK_btn」をクリックした時には、「OK」と言う

 タブン、Javascriptの分かる人には、ふつーに分かることだったっぽい(?)

 ・・・でも、結局HTML設定してそう(^▽^;



 あっ、前終了判定が違ってました;;;

 端っこにある駒の時の処理が抜けてました。

 毎忘れる。進歩がない(´д`;)

 一次元の配列で二次元のにしてるから、行をまたいだ向こうっかわの列を参照しちゃうんだよね。

 まあSameGameだと、んなに駒が残ること自体が滅多にないけど、奇跡的な残りっぷりだった場合、消せる駒は無いけどゲームオーバーないとゆう事件が発生する可能性も、あることはある

終了判定
 Noを0から駒数-1まで繰り返す。
  X=No%駒数x。Y=(No/駒数x)を切捨。
  もし、駒色[No]=でなければ、
   # 上下左右に同じ色の駒があるかどうかチェックする
   もし、X=0ならば、         #左端
    もし、(駒色[No]=駒色[No+1])または(駒色[No]=駒色[No-駒数x])または(駒色[No]=駒色[No+駒数x])ならば、
     いいえ戻る。
    ここまで。
   違えばもし、X=駒数x-1ならば、   #右端
    もし、(駒色[No]=駒色[No-1])または(駒色[No]=駒色[No-駒数x])または(駒色[No]=駒色[No+駒数x])ならば、
     いいえ戻る。
    ここまで。
   違えばもし、Y=0ならば、     #上端
    もし、(駒色[No]=駒色[No-1])または(駒色[No]=駒色[No+1])または(駒色[No]=駒色[No+駒数x])ならば、
     いいえ戻る。
    ここまで。
   違えばもし、Y=駒数y-1ならば、   #下端
    もし、(駒色[No]=駒色[No-1])または(駒色[No]=駒色[No+1])または(駒色[No]=駒色[No-駒数x])ならば、
     いいえ戻る。
    ここまで。
   違えば、
    もし、(駒色[No]=駒色[No-1])または(駒色[No]=駒色[No+1])または(駒色[No]=駒色[No-駒数x])または(駒色[No]=駒色[No+駒数x])ならば、
     いいえ戻る。
    ここまで。
   ここまで。
  ここまで。
 ここまで。
 はい戻るここまで。

 無駄っぽいケド、まあいいや~;



 それから、部品作成で、謎現象が発生だ~。

 いや、作成自体にはナゾはないんですが。

 テキスト取得やテキスト設定が、できないことがあるんだよね。

 エディタ入力したテキストを取得して、難易度(駒数)を変えられるようにしたいってだけのことなんですが。

 しかも、エラーも出さずにこでプログラムが止まっちまうんだから、困ったもんだ。

 なんでそうなるのか、わからんねヽ(;´Д`)ノ

 現象再現させるコードを作ってみたいが、なかなか再現しない。逆に再現させられたら、あっさり原因が発覚するような気もするけど。


 どうも、いっぱい部品作った、下の方の部品で起こるような気がする。

 作る順番を変えたらふつーに通ったり、度別の部品がおかしくなったりもする。

 しかも、代入した変数名では取得も設定もできないのに、要素を調査して、密かに付けられている「nadesi-dom-*」のIDを指定したら、普通に通ったりもするΣ(゜д゜;

 これが一番納得いかんね(@_@)


 うーん、難易度(駒数)の変更はなしにして、取りあえず完成にすっかな・・・

 部品作成使わずに、全部HTMLにしたら案外普通にできるような気もするけど、このナゾ現象以外にも、駒数増えたら得点は当然多くなるんだから、ハイスコア表示はどのようにしたらいいんだろう、とか、画面のサイズに合わせて、あんまりバカみたいな数は指定出来ないようにしたいけどできるんだろうか・・・とかとか、この機能に関してはムダに色々悩みが深いんだよねw

トラックバック - http://nadesiko.g.hatena.ne.jp/snowdrops89/20190827