質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.50%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

3回答

1585閲覧

同じ親要素内の子要素を移動したい(IE8〜)

castail

総合スコア117

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2015/09/01 05:57

jqueryの質問です。

同じ親要素内の子要素を移動したいです。

具体的には、下記構成で、連続する「parent」があり同じ「parent」内の「child2」を「child1」直後に移動したと考えております。

lang

1<div class="parent"> 2<div class="child1"></div> 3456<div class="child2"></div> 7</div> 8 9 10<div class="parent"> 11<div class="child1"></div> 12131415<div class="child2"></div> 16</div> 17 181920

以前下記ページで同様の質問をし、以下のコードをご教授頂きました。

https://teratail.com/questions/15007?nli=55da7f93-7994-4820-9bc3-56909d07a784#r23133

lang

1$(".parent").each(function(){ 2 $(this).find(".child2").insertAfter($(this).find(".child1")); 3})

しかし、こちらの方法ですとIE8でうまく動作しませんでした。
今回は、IE8も対象とした解決策をご教授願えれば幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

いろいろ書きましたが、本当に .each() が原因なのでしょうか。
質問文に掲示された最小限のコードで試していますか。
(実際のコードは別にあって、そのコードだけにある記述に原因がある可能性はないでしょうか)

投稿2015/09/01 07:06

think49

総合スコア18156

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

castail

2015/09/01 07:46

think49様 ご回答頂きありがとうございます。 確かに他に動いているスクリプトがございます。 それらの原因の可能性も含め諸々試し、当該スクリプトを追加時のみ動作しなかったためこの部分が原因かと決めつけていた部分もございます。 再度検証したいと思います。
guest

0

ベストアンサー

jQuery1.x系を利用してもダメなのでしょうか?

jQuery1.x系はIE8をサポートしているはずですが。

もし、jQuery1.x系でもダメだというのなら以下を試してみてください。

javascript

1$(".parent").each(function(){ 2 $(this).find(".child1").after($(this).find(".child2")); 3})

正直、変わらないかもしれないですが・・・

投稿2015/09/01 06:06

orange0190

総合スコア1698

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

castail

2015/09/01 06:20

ShunsukeIzui様 前回含めご回答ありがとうございます。 残念ながら、ご教授いただいた内容でも改善されませんでした。 jqueryのバージョンは1.8.3です。 IE8と「each」メソッドで検索したら、下記エラー・バグのような記事を見つけたのですが、これが原因の可能性は有りますでしょうか? http://bugs.jquery.com/ticket/4180 http://www.experts-exchange.com/Programming/Languages/Scripting/JavaScript/Jquery/Q_28218745.html ※英語に疎く記事の内容は理解しておりません。。。 「each」メソッドを使用しない解決策がございましたらご教授願いたいです。
orange0190

2015/09/01 07:26

http://bugs.jquery.com/ticket/4180 こちらは文字列に対して、each()を利用した場合のバグになるので今回の件では関係ないと思われます。 もしでしたら、ie8の開発者ツールを使用してみてはいかがでしょうか。
castail

2015/09/01 07:48

ShunsukeIzui様 ご回答ありがとうございます。 なるほど、やはり関係なかったですか。。 検証したつもりでしたが他スクリプトなどの干渉も含め再度調べ直したいと思います。 前回ご回答頂いた経緯もございますので、今回のベストアンサーはShunsukeIzui様にさせて頂きます。 その他の皆様のご教授頂き誠にありがとうございました。
guest

0

お使いのjQueryのバージョンを確認できますか?
最新版(2.x系)のjQueryでは、IE8はサポート外です。

jQueryのバージョンはファイル名から判別できると思いますが、判らないようなら以下のコードを実行してみてください。

javascript

1window.alert($.fn.jquery);

jQueryの1.x系なら質問者さんが提示されたコードで動作するかと思いますが・・・。

投稿2015/09/01 06:01

編集2015/09/01 06:04
hy3

総合スコア594

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

castail

2015/09/01 06:18

hy3様 ご回答ありがとうございます。 使用しているjqueryのバージョンは1.x系の1.8.3なので、この点が問題では無いということでしょうか。。。
hy3

2015/09/01 07:14

jQueryのバージョンに問題が無いとなると、think49さんがおっしゃっているように別の原因がありそうです。 以下の記事を参考に、エラーの発生場所と具体的な内容を調べてみてください。 http://www.ajaxtower.jp/js/error/index1.html
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.50%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問