2016-09-25 11 views
0

私はhtmlコードにajaxiページを持ち、2番目のページに多くのDivを持っています。 srtingの最初の文字をスライスする関数を書いた。問題は、私が2ページ目をリロードするたびに、文字列の最初の文字を何度も何度もスライスすることです。私は一度だけ働きたい。ここ はスライスの私のコードです:JQueryで文字列の最初の文字をDOM内で繰り返す

<html> 
 
    <head> 
 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script> 
 
    <body> 
 
     <div class="removi">,$12547000</div> 
 
     <div class="removi">,$24580000</div> 
 
     <div class="removi">,$78504000</div> 
 
     <script> 
 
     $('.removi').text(function (_,txt) { 
 
      return txt.slice(1); 
 
     }); 
 

 
     </script> 
 
    </body> 
 
    </head> 
 
</html>

+0

あなたの質問は不明です!あなたは大胆にlilを説明できますか? – Kirk

+0

あなたはAjaxを介してページを更新し、以前にAjaxの呼び出しから以前に更新されたアイテムではなく、今追加したアイテムにのみスライスを適用したいと言っていますか?いずれにしても、あなたの質問を編集して、ページの更新方法を明確にしてください。 – nnnnnn

+0

@nnnnnn私はajaxでページを更新しますが、スライス機能はページを更新するたびに実行されます。私は一度だけ実行したい – inaz

答えて

0

だけのシンプルなブールフラグを追加して、コードがすでに実行されたかどうかを確認:

<html> 
 
    <head> 
 
    <script src="http://ajax.aspnetcdn.com/ajax/jQuery/jquery-1.12.4.min.js"></script> 
 
    <body> 
 
     <div class="removi">,$12547000</div> 
 
     <div class="removi">,$24580000</div> 
 
     <div class="removi">,$78504000</div> 
 
     <script> 
 
      if (window._removedAlready !== true) { 
 
      $('.removi').text(function (_,txt) { 
 
       return txt.slice(1); 
 
      }); 
 
      window._removedAlready = true; 
 
      } 
 
     </script> 
 
    </body> 
 
    </head> 
 
</html>

windowを汚染することに注意してください名前空間は良い考えではありません。メインページにあるが、あなたのAjaxコンテンツにはないブール変数を使用してください。

+0

コードは私には機能せず、2回目のページを2回リロードすると再びスライスします。どのようなブール変数を使ってどういう意味ですか? – inaz

+0

@inazええと、どうやってこのコードをロードしますか?私は完全にはわからない。 –

関連する問題