10秒目をつむったら…

jQueryで書き換えた要素のリセット

多分かなり初歩的な質問ですが、すいません。
jQueryでDOMの書き換えをやりたいのですが、その場合、書き換える前の状態にリセットするような関数?はありますでしょうか。
ないとすれば、書き換える前の要素を取り出しておいて、もう一度代入するような方法しかないでしょうか。

具体的にやりたいのは、ある条件の時のみaタグのURLを書き換え、条件から外れると元のURLに戻る、というものです。

素のhtml
<a href="http://www.hoge.com/"></a>
条件を満たしているとき
<a href="http://www.mogamoga.com/"></a>
条件を満たしていないとき
<a href="http://www.hoge.com/"></a>

詳しい方おられましたら、どうかご教授ください。
よろしくお願いいたします。

A 回答 (3件)

そもそもDOM書き換え以前の話しなので、的外れだったら気にしないでくださいね。



jqueryで変数にページのデータをぶちこんじゃうのも手かもしれませんが、
smartyとかサーバー側で切り分けを行うのはダメなのでしょうか?

条件を満たす/満たさないで、リンク先を変えたいなら、smartyみたいなテンプレートエンジン側で、フラグなり変数なりを使って、分岐させればよいのではと思ったりしますが。


そうではくて、jqueryでやりたい場合は、条件を満たした時点でフラグを立てておき、その場合はattr関数なりを使ってリンク先を変えるぐらいしか思いつかないです。

お力になれるかどうか分かりませんが、ご参考になれば幸いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
サーバ側の方で分岐させる方法もあるんですね。smartyというのはMTを扱ったときにちらっと聞いたことがある程度です。不勉強につき無知でお恥ずかしいです…
今回は私がサーバにインストール等できる立場にないので、やはりattrでhrefの値を取得、再度代入する方向で行くことにしました。

function geturl(){
 $("a").each(function (i) {
  url[i] = $(this).attr('href');
 });
}

↑のような感じで…
jQueryというかjavascript自体ほとんどわからず見よう見まねなので、ひどいソースかもしれませんが、とりあえず思ったような挙動をさせることができたので、解決といたします。ありがとうございました。
javascriptを勉強する必要性をひしひしと感じております…

お礼日時:2010/08/12 09:43

最初から、2つ準備しておいて、


ある条件の時のみ表示するように、
スタイル属性を切り替えるってのはだめ...
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
運用上の都合で、ちょっとそういったことはできないのです。

お礼日時:2010/08/12 09:45

属性値のみにしろ、要素まるまるにしろ、部分的にもとに戻したいなら、


書き換え前の値を自分で保持しておく必用があります。
 何か、思いがけない方法ってあるかなあ...

ページ全体を読み直すってのは、だめよね。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます!
やはりそうですよね。素直にattrでhref属性を取得することにしました。

全体を読み直すというのがちょっと良くわからないのですが、リロードが発生するのであれば避けたいです。

お礼日時:2010/08/12 09:48

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!