https://teratail.com/questions/12677の続きです。
その後JQUERYのcssメソッドを使い編集した所、JQUERYのcssメソッドは、要素を直接いじっているので、
他のページも変更されるといわれてしまいました。
下記が一部抜粋です。
>>>>
beforeメソッドで固定化されているため、
他のページを開いても同じテキストが表示されてしまいます。
また、要素をbeforeで固定するのではなく、insertBeforeなどのDOM操作で移動されるのが宜しいかと思います。
それぞれのメソッドの違いについては下記のリファレンスサイト等を参考にご自身でお調べ下さいませ。
http://semooh.jp/jquery/api/manipulation/insertBefore/content/
http://semooh.jp/jquery/api/manipulation/before/content/
どのメソッドが固定かどうかという情報がなく、どれを使えるのかがわかりません。
結果からすると、前にいただいた回答は間違っていたということでしょうか?
・追加情報
>JQUERYのcssメソッドは、
.css("background-color");などごく一般的なJQUERYでのCSS指定です。
他にcolor、font-sizeなども使いました。
要素をbeforeで固定するのではなく、insertBeforeなどのDOM操作で移動されるのがよいと言われているのですが、
この二つのメソッドは、片方がDOM操作で片方はそうでない(固定されてしまう)という決定的な違いがあるようです。
ここの部分をどう思われますか?
DOM操作系のメソッド一覧があり、ここのメソッドであれば、動的サイトでも使えるという事でしたら、非常にわかりやすいのですが、
どこが信頼できるのか判断が難しいです。
下記のようなサイトは見つかるのですが、
例えば、下記のサイトなら、jQueryによるDOM操作をまとめてみたの中に、3. 要素の挿入(after, insertAfter, before, insertBefore)という記載があります。
ただし先方のメールには、要素をbeforeで固定するのではなく、insertBeforeなどのDOM操作で移動されるのが宜しいとあります。
つまり、 before, insertBeforeは、DOM操作系かそうでないかの、違いがあるはずなのに、同じページ内で紹介されていて区別がつきません。
http://ruby-rails.hatenadiary.com/entry/20150331/1427809820#jquery-dom-after
・HTMLは、いわゆる一般的な会員制の大手サイトと同じです。
コンプライアンスがあるので、残念ながらここのサイトとは記載できませんが、例えばホトッペーパーやグルナビなど、沢山のお店が情報を登録し、店の情報だけが変わり骨組みは皆同じという形のサイトです。
デブツール上では、普通のHTMLに見えます。処理された結果しか見れないので当たり前かもしれませんが。
動的サイトの件で、再度質問した所下記の回答を頂きました。
下記回答
ここでおっしゃる「直接HTMLを変更できない」というのは、動的に変更される要素をreplaceWithやtextなどで変更したい画像や文言にできないということでよろしいでしょうか?
上記の認識でよろしければ、この変更は不可になりますので、要素の位置を移動したり、レイアウトを変更したりなどの編集のみにしてください。
もし、要素の移動などを行いたいという場合は例えば、
//動的箇所をid="test2"の要素の上に移動させたい。
<div id="test1"> <div>この内容が動的箇所です。</div> </div> <div id="test2"></div>//id="test1"の中にあるdivをid="test2"の要素の上に移動する。
$("#test1 > div").insertBefore("#test2");
//動的箇所の内容を固定化することなく、id="test2"の要素の上に移動することができる。
<div id="test1"></div> <div>この内容が動的箇所です。</div> <div id="test2"></div> ===== その他にも ===== //動的箇所をid="test2"の要素の中に移動させたい。 <div id="test1"> <div>この内容が動的箇所です。</div> </div> <div id="test2"></div>//id="test1"の中にあるdivをid="test2"の要素の中に移動する。
$("#test1 > div").prependTo("#test2");
//動的箇所の内容を固定化することなく、id="test2"の要素の中に移動することができる。
<div id="test1"></div> <div id="test2"> <div>この内容が動的箇所です。</div> </div> ===== 上記では、insertBefoerとprependToを参考にご案内致しましたが、 他にもinsertAfterとappendToなど同じような処理でも少し異なる処理を行うメソッドもございます。