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

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

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

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

jQuery

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

Q&A

解決済

2回答

1753閲覧

jquery & Javascript でのDOM書き換えについて

enokiyo

総合スコア78

JavaScript

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

jQuery

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

0グッド

1クリップ

投稿2015/09/25 05:06

例えばこのような構造だったとして

<div id="wrap_root"> <div class="kodomo"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo"></div> <div class="kodomo"></div> <div class="kodomo"></div> <div class="kodomo"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo"></div> <div class="kodomo"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo" style="display:none"></div> </div>

id=wrap_root内のclass=kodomoのdisplay=noneでない先頭から5つ直後に<span>ここまで</span>といれたいです。

JQueryを使った方がいいのか使わない方がいいのかもわかれば・・・。

よろしくお願いいたします。

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

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

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

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

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

guest

回答2

0

こんな感じですか?

javascript

1$('#wrap_root .kodomo:visible:eq(4)').after($('<span>ここまで</span>')).next().nextAll().wrapAll('<div>ここまで以降</div>');

http://jsfiddle.net/03ej2rmb/

投稿2015/09/25 10:30

編集2015/09/25 10:37
Lhankor_Mhy

総合スコア36074

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

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

0

ベストアンサー

もっと良い書き方があるかもしれませんが参考になれば…!

JavaScript

1$(function() { 2 var count = 0; 3 var anchorFlag = false; 4 var afterHtml = ''; 5 $('#wrap_root').children('.kodomo').each(function(){ 6 if($(this).css('display') != 'none'){ 7 ++count; 8 } 9 if(count >= 5){ 10 if(anchorFlag == false){ 11 $(this).after($('<span>').html('ここまで')); 12 anchorFlag = true; 13 return true; 14 } else { 15 afterHtml += $(this).context.outerHTML; 16 $(this).remove(); 17 } 18 } 19 }); 20 if(afterHtml != ''){ 21 $('#wrap_root').append($('<div>').html(afterHtml)); 22 } 23});

投稿2015/09/25 05:21

編集2015/09/25 07:31
notable

総合スコア415

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

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

enokiyo

2015/09/25 06:41

ありがとうございます。 ここまでを挿入するのはわかりました。 ここまで挿入位置から最後までを<div>で囲むにはどうしたらよいでしょうか? <div id="wrap_root"> <div class="kodomo"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo"></div> <div class="kodomo"></div> <div class="kodomo"></div> <span>ここまで</span> <div>ここまで以降 <div class="kodomo"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo"></div> <div class="kodomo"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo" style="display:none"></div> <div class="kodomo" style="display:none"></div> </div> </div>
kaputaros

2015/09/25 06:45

横から失礼します。 このソースだと、 5番目のdivタグが "display:none" だと、ここまで の上にあるのが4つになってしまいます。 count=0から始めて display:noneの判定を if(count>=5)より前で行うといいと思います。
notable

2015/09/25 07:32

kaputarosさん 回答のソースに反映しました。 ご指摘ありがとうございます! enokiyoさん 回答のソースを編集し、ここまで以降の対応をしてみました。 でもこの対応はソースを出力する前に行うべき処理な気がしますねー
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問