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

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

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

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

Q&A

解決済

3回答

545閲覧

jqueryで2つ書くと1つ目が機能しなくなります。

yukina00235

総合スコア63

jQuery

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

0グッド

0クリップ

投稿2020/10/05 05:14

何度も試すのですがうまく機能しないのでアドバイス願います。

現在、Wordpress上で#messageにセットされている文字を取得して、フォームのinputの#infoにその取得した文字を埋め込んでいるのですが、1つの場合だと動くのですが、2つ以上設定すると以前に設定した内容が機能しなくなってしまいます。

何か書き方が悪いのでしょうか?または何かルールがありますでしょうか?
以下だと動きます。

jQuery

1jQuery(function(){ 2var data = jQuery("#message").text(); 3jQuery("#info").val(data); 4});

こちらだと前者の設定が動かなくなってしまいます…。

jQuery

1// A というカテゴリで使用。 2jQuery(function(){ 3var message = jQuery("#message").text(); 4jQuery("#info").val(message); 5}); 6 7// B というカテゴリで使用。 8jQuery(function(){ 9var comment = jQuery("#comment").text(); 10jQuery("#info").val(comment); 11});

記述は、別ファイルに書いてすべてのページで読み込んで利用しています。
何がいけませんでしょうか、宜しくお願いします。

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

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

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

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

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

guest

回答3

0

競合する処理ですよね?
あとから実行している処理が上書きしているだけだと思います
onメソッドなどでなにかの作業をトリガーに書き換えれば共存できると思います

投稿2020/10/05 05:18

yambejp

総合スコア116724

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

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

yukina00235

2020/10/05 05:22

有難うございます、onメソッドを調べてみたいと思います。
guest

0

ベストアンサー

?

javascript

1jQuery(function(){ 2 var data = jQuery("#message").text(); 3 jQuery("#info").val(data); 4 5 var message = jQuery("#message").text(); 6 jQuery("#info").val(message); 7});

まず質問者様の2つの内容をまとめるとこうなります。

  1. id="mseeage" のテキストを[data]変数に代入
  2. id="info" のvaluseに[data]変数に代入
  3. id="mseeage" のテキストを[mseeage]変数に代入
  4. id="info" のvaluseに[mseeage]変数に代入

代入された変数が異なるだけで同じところから値を取得して
同じところに代入していますよね?

それでは2つとも「全く同じ動き」をしているだけですが...

投稿2020/10/05 05:22

kuma_kuma_

総合スコア2506

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

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

yukina00235

2020/10/05 05:40

var data = jQuery("#message").text(); jQuery("#info").val(data); var comment = jQuery("#comment").text(); jQuery("#info").val(comment); Bのカテゴリでは、#commentを取得して#infoにcommentとして別の値を埋め込んでいるのですが、だめなのでしょうか。取得するものは違いますが、埋め込む場所は#infoとなってしまいます。
kuma_kuma_

2020/10/05 05:51

?質問の間違い?今書かれている内容と質問で書かれている内容違いますが... 今書かれている内容を実行したら id="info"のvalueの値がid="comment"の文字と同じになるだけですよ? あと今の状態ではなぜ「id="info"のvalueの値を変更するのか?」の意味が不明過ぎて 良い悪いは答えられませんが...
guest

0

別ファイルに書いてすべてのページで読み込んで利用しています。

しかしながらAというカテゴリ、Bというカテゴリを区別する記述がありません。
ということは全ページで同じタイミング(ドキュメントロード)で動作します。

今回のようなjQuery(function(){は複数書く意味がありません。
結局は「ドキュメントが読み込まれたら」の意味です。
その後は書かれた順番に上から実行していきます。

または何かルールがありますでしょうか?

この場合は「自分でルールを作る」となります。
イベントを発火させるタイミングを明示的に区別させる必要があります。
ページなのか、何かしらクリックしたときなのか、それは要件次第ですし、
提示された情報だけでは他者には判断できません。

投稿2020/10/05 05:53

m.ts10806

総合スコア80875

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問