[英]How do I repeat the onClick text input function?
我是Java語言的新手。 我試圖用文本輸入字段中的輸入替換“ test”一詞。 該代碼似乎是第一次替換文本,但是我希望它每次在文本字段中輸入新值並按下按鈕時都執行。
<p id="replacetext">
1. Test </br>
2. Test </br>
3. Test </br>
</p>
<input id="myInput" type="text"/>
<script>
function onClick() {
var replacetest = document.getElementById("myInput").value;
var str = document.getElementById("replacetext").innerHTML;
str = str.replace(/Test/g, replacetest);
document.getElementById("replacetext").innerHTML = str;
console.log(replacetext)
}
</script>
<button onclick="onClick()">Submit</button>
</body>
這是因為您沒有跟蹤舊值(即您正在用輸入值替換Test,但是下次沒有剩下“ Test”字符串來替換),請嘗試使用此小提琴https://jsfiddle.net/dzr8n9vh/
<p id="replacetext">
1. Test </br>
2. Test </br>
3. Test </br>
</p>
<input id="myInput" type="text"/>
<script>
var oldValue = 'Test';
function onClick() {
var replacetest = document.getElementById("myInput").value;
var str = document.getElementById("replacetext").innerHTML;
var re = new RegExp(oldValue,"g");
oldValue =replacetest
str = str.replace(re, replacetest);
str = str.replace("Event", "Purchase");
document.getElementById("replacetext").innerHTML = str;
}
</script>
<button onclick="onClick()">Submit</button>
查看腳本,即使在第一次調用中已經將字符串“ Text”更改為輸入值,您仍將在第二次調用上繼續替換字符串“ Text”。
您需要做的是記住上一次調用結束時上一次輸入的值(prevValue變量),然后在當前調用中將其替換為新輸入的值。 由於不能只在正則表達式中使用變量,因此必須將其轉換為正則表達式。
<p id="replacetext"> 1. Test </br> 2. Test </br> 3. Test </br> </p> <input id="myInput" type="text" /> <script> // Set scope of variable outside of function var prevValue = "Test" function onClick() { var replacetext = document.getElementById("myInput").value; var str = document.getElementById("replacetext").innerHTML; // Convert the variable to use it in the regular expression var regex = new RegExp(prevValue, 'g'); str = str.replace(regex, replacetext); str = str.replace("Event", "Purchase"); document.getElementById("replacetext").innerHTML = str; console.log(replacetext); // Update the previous variable prevValue = replacetext; } </script> <button onclick="onClick()">Submit</button>
希望這對您有用!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.