質問 |
||
| QNo.4193046 | <div>を移動するには? | |
|---|---|---|
| 質問者:benneb |
以下のようなhtmlがあります。 -------------------------------------------- <html> <body> <div id="wrapper"> <div id="d1">ここは第1番です。<form type="input" name="b1" value="Topへ"></form></div> <div id="d2">ここは第2番です。<form type="input" name="b2" value="Topへ"></form></div> <div id="d3">ここは第3番です。<form type="input" name="b3" value="Topへ"></form></div> <div id="d4">ここは第4番です。<form type="input" name="b4" value="Topへ"></form></div> <div id="d5">ここは第5番です。<form type="input" name="b5" value="Topへ"></form></div> </div> </body> </html> -------------------------------------------- 例えばボタン"b3"を押すと、<div id="d3">が一番上に移動するようにするには、どうしたら良いでしょうか? 残りのdivはそのままの順位で下にずれることになります。 sortなどは使えないと思いますし、どうすればイイのか見当がつきません。 もしお分かりの方おられましたら、ヒントだけでもお願い致します。 |
|
困り度:
|
||
| 質問投稿日時: 08/07/21 13:59 |
||
回答 |
|
| ANo.4 | #2,3です ×助長→○冗長 あぁ恥じの上塗り・・・ |
|---|---|
| 回答者:steel_gray | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/07/21 15:13 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答 |
|
| ANo.3 | #2です。 参考リンクのinsertBeforeの説明に 「newChild が既に樹の中にある場合には、まずそれが取り除かれる。」 と、ありましたね。削除は助長だったようです。 |
|---|---|
| 回答者:steel_gray | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/07/21 15:11 |
|
| |
| この回答へのお礼 | この回答にお礼をつける(質問者のみ) |
回答良回答10pt |
|
| ANo.2 | wrapperから一旦削除 先頭に挿入すればいいかと。 <div id="d1">ここは第1番です。<input type="button" value="Topへ" onclick="sample(this)"></div> function sample(O){ var wrapper=document.getElementById('wrapper'); var target=O.parentNode;//押されたボタンの親 wrapper.removeChild(target);//wrapperから削除 wrapper.insertBefore(target,wrapper.firstChild);//先頭に挿入 } http://www.doraneko.org/misc/dom10/19981001/level-one-core.html#ID-... |
|---|---|
| 回答者:steel_gray | |
| 種類:回答 どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/07/21 14:42 |
|
| |
| この回答へのお礼 | ありがとうございます。 やはりinsertBeforeですか・・・。 なんか、削除しなくても、第1引数は自動的に削除される(つまり移動)みたいですね。 |
回答良回答20pt |
|
| ANo.1 | なんか例文が変じゃないすか?以下でどうでしょう? <script> function goTop(obj){ var p=obj.parentNode; var pp=p.parentNode; pp.insertBefore(p, pp.childNodes.item(0)); } </script> <div id="wrapper"> <div id="d1">ここは第1番です。<input type="button" name="b1" value="Topへ" onclick="goTop(this)"></div> <div id="d2">ここは第2番です。<input type="button" name="b2" value="Topへ" onclick="goTop(this)"></div> <div id="d3">ここは第3番です。<input type="button" name="b3" value="Topへ" onclick="goTop(this)"></div> <div id="d4">ここは第4番です。<input type="button" name="b4" value="Topへ" onclick="goTop(this)"></div> <div id="d5">ここは第5番です。<input type="button" name="b5" value="Topへ" onclick="goTop(this)"></div> </div> |
|---|---|
| 回答者:yambejp | |
| 種類:アドバイス どんな人:一般人 自信:参考意見 |
|
| 回答日時: 08/07/21 14:36 |
|
| |
| この回答へのお礼 | button、ちがってました(涙)。。。 なるほど、insertBeforeなんて関数があったのですか。 ちなみに、第1引数のpとは<div id="d3">、第2引数は<div id="wrapper">という理解で合っていますか? |