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

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

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

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

jQuery

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

Q&A

3回答

1073閲覧

jqueryので複数の要素を上書きなしで変数に入れる方法を教えてください。

camcam

総合スコア6

JavaScript

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

jQuery

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

0グッド

0クリップ

投稿2018/01/29 09:10

編集2018/01/29 09:17

jqueryので複数の要素を上書きなしで変数に入れる方法を教えてください。

ここに質問の内容を詳しく書いてください。
jqueryの書き方についてご質問させてください。

htmlを直接触れないページで、jsを使用して、あるコンテンツを別の場所に移動させようとしています。
その際移動させたいコンテンツが一つのブロックで囲われているわけではなく、下記のように同じclass名で複数のブロックに分かれています。
複数の要素を変数に入れたいのですが、基本上書きされてしまって、最後の要素しか取ってこれません。
上から順に追加という形で変数に入れることは可能でしょうか?

変数にさえ入れてしまえば、あとはappendなどを使用して、移動させられるのですが。

ご回答よろしくお願いします。
■■な機能を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

該当のソースコード

html

1<div class="FS2_ReviewEditAverage"> 2<p>この商品の平均評価:<img src="/shop/item/senbikiya/design/template01/btn/ReviewStars_50.gif" alt="おすすめ度(5.0)" border="0" align="absmiddle" class="FS2_ReviewStars"> <b class="caution">4.80</b></p> 3</div> 4 5<table border="0" cellspacing="0" cellpadding="0" class="userTable_01"> 6<tbody><!--省略--></tbody></table> 7 8<table border="0" cellspacing="0" cellpadding="0" class="userTable_01"> 9<tbody><!--省略--></tbody></table> 10 11<table border="0" cellspacing="0" cellpadding="0" class="userTable_01"> 12<tbody><!--省略--></tbody></table> 13 14<table border="0" cellspacing="0" cellpadding="0" class="userTable_01"> 15<tbody><!--省略--></tbody></table>

試したこと

$(function () {
var length =$(".userTable_01").length;
for (var i = 0; i < length; i++) {
var review_txt = $(".userTable_01").html;
}
});

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

yambejp

2018/01/29 09:18

「htmlを直接触れないページで、jsを使用」→これはjsは外部ファイルかなにかで任意に拡張できるということでしょうか?「あるコンテンツを別の場所に移動」例示されたhtmlからでは何を何処にどのような条件でどのタイミングで移動したいのかわかりません。具体的な仕様の提示が必要です
guest

回答3

0

配列に入れるというか、
とりあえず変数として取得して、いろいろやりたいという感じであれば。
eachを使うと便利です。

javascript

1$('.userTable_01').each(function(){ 2 console.log($(this)); 3 4 //.xxxxxxに、appendしたい先のクラスなどセレクタを入れれば移動できます。 5 $('.xxxxxx').append($(this)); 6});

投稿2018/01/29 11:22

kszk311

総合スコア3404

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

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

0

class指定のセレクタ$('.userTable_01')で複数要素を取得する事が出来ます。

javascript

1var table = $('.userTable_01'); 2console.log(table); //複数取得が確認できます

配列っぽいjQueryオブジェクトになっていますが、
配列ではないので、各要素にアクセスするにはtable.eq(0)table.get(0)といったメソッドを使います。
eqとgetの違いはjQueryの基本なので調べてみて下さい。

これをただ単純に配列にしたいならば$('.userTable_01').toArray()で変換する事も可能です。
配列にしてしまえば、操作も自ずと決まってくるので考えやすくなると思います。

追記:試したことをリファクタリングするとこうなります

javascript

1$(function () { 2 //forで回す場合(質問者さんのコードではせっかくのカウンタ変数iが使われていません。) 3 var $table = $(".userTable_01"); //jQueryは変数に入れてキャッシュ化すると速くなります 4 for (var i = 0, length = $table.length; i < length; i++) { 5 var review_html = $table.eq(i).html(); 6 //review_htmlを処理 7 } 8 9 //eachを使う場合(カウンタ変数要らない) 10 $(".userTable_01").each( function(idx, elem){ 11 var review_html = $(elem).html(); 12 //review_htmlを処理 13 }); 14});

投稿2018/01/29 09:40

編集2018/01/30 03:59
so87

総合スコア764

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

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

0

以下じゃ駄目ですか?

javascript

1var $tables = $('.userTable_01'); 2 3// いれたい要素(hoge)に移動 4$('#hoge').append($tables.clone()); 5 6// 元の要素はそのままにしたい場合は以下の通り 7// $('#hoge').append($tables.clone()); 8

投稿2018/01/30 10:11

LineOfLightning

総合スコア253

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問