2016-07-16 69 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)申請替換的文本,但我想用按一下按鈕(button1)做它,而另一個按鈕(button2)將其改回。

內部按鈕onclick事件(每個循環功能中)$["lang=en"].text(replaceText);沒有正確的效果。

回答

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

#convert將文本轉換成具有lang=en財產所有輸入文件。 #convert-back按鈕會做相反的操作。讓我知道,如果它的工作對你


$(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) 
     }); 
    }); 

}); 

編輯

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"); } 
    }); 

}); 

將舊值存入alt輸入框的標籤再次替換。讓我知道它是否對你有幫助。

+0

我已經這樣做了,但是沒有辦法在沒有重寫值的情況下進行「convert-back」替換?我有很長的.replace列表。就像在不同功能的某處存儲默認值一樣? –

+0

我們必須將舊值存儲在隱藏框中,以便再次檢索。 –

+0

編輯我的答案,檢查並讓我知道,如果你正在尋找這樣的事情 –