2016-07-16 20 views
1

私はドキュメント内のテキストフィールドを収集し、別のテキスト(言語)に置き換えようとしました。どちらがうまくいったのですが、ページをリロードせずに戻すことはできません。テキストをデフォルト状態に戻す(jQuery)

最初に、置き換えたいすべてのテキストフィールドにlang="en"というプロパティがあります。

だから私は、次の操作を実行し、配列にそれらのすべてを収集するためのjQuery .each()機能を使用しました:

$(document).ready(function() { 
    $("[lang=en]").each(function(){ 
    var textArray = $(this).text(); 
    }); 
}); 

変数textArrayが別の変数に交換する必要がテキストフィールドのコレクションを保持している間。例:

var replaceText = textArray.replace("Hello", "Hi").replace("Good afternoon!", "Hi!"); 

各関数の内部で、私は交換したテキストを適用するために$(this).text(replaceText)を行うことができますが、別のボタン(button2)が戻ってそれを変更する一方、私はボタンのクリック(button1)でそれを行うことを望む一方で。

内ボタンonclickイベント(各ループ関数内)$["lang=en"].text(replaceText);は、正しい効果を持ちません。

答えて

1
<input type="button" id="convert" value="Convert"/> 
<input type="button" id="convert-back" value="Convert Back"/> 

#convertlang=en性質を持っているすべての入力ファイルにテキストを変換します。 #convert-backボタンはその逆を行います。それは

HTMLパート

<input type="text" lang="en" value="Hello" alt="Hello, stack"/> 
<input type="text" lang="en" value="Hello" alt="Hello, over"/> 
<input type="text" lang="en" value="Hello" alt="Hello, flow"/> 
<input type="text" lang="en" value="Hello" alt="Hello, stack"/> 
<input type="text" lang="en" value="Hello" alt="Hello, over"/> 

<input type="button" id="convert" value="Convert"/> 

jQueryのパート

$(document).ready(function() { 

    $("#convert").click(function() { 

     $("input:lang(en)").each(function() { 

      var textArray = $(this).val(); 
      var newArray = $(this).attr("alt"); 

      $(this).val(newArray); 
      $(this).attr("alt", textArray); 
     }); 

     if ($(this).val() == "Convert") { $(this).val("Convert back"); } 

     else { $(this).val("Convert"); } 
    }); 

}); 
編集あなた


$(document).ready(function() { 

    $("#convert").click(function() { 

     $("input:lang(en)").each(function() { 

      var textArray = $(this).val(); 
      var replaceText = textArray.replace("Hello", "Hi").replace("Good afternoon!", "Hi!"); 
      $(this).val(replaceText) 
     }); 
    }); 

    $("#convert-back").click(function() { 

     $("input:lang(en)").each(function() { 

      var textArray = $(this).val(); 
      var replaceText = textArray.replace("Hi", "Hello").replace("Hi!", "Good afternoon!"); 
      $(this).val(replaceText) 
     }); 
    }); 

}); 

のために働いているなら、私を知ってみましょう

入力ボックスのタグaltに古い値を保存し直しました。それがあなたに役立つかどうか私に教えてください。

+0

私は実際にこのようにしましたが、置き換えで値を書き換えないで "変換 - バック"を行う方法はありませんか?私はかなり長いリプレースリストを持っています。店舗のデフォルトのように別の機能のどこかに? –

+0

元の値を隠しボックスのようにどこかに保存し直してください。 –

+0

私の答えを編集してチェックし、あなたがこのようなものを探しているかどうか知らせてください –

関連する問題