将文本返回到默认状态 (jQuery)
Returning text to default state (jQuery)
我试图在我的文档中收集文本字段并将其替换为不同的文本(语言)。一切顺利,但我无法在不重新加载页面的情况下 return 返回它。
首先,我希望替换的所有文本字段 属性 都称为 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);
没有正确的效果。
<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
标签中,以便再次替换。如果对你有帮助,请告诉我。
我试图在我的文档中收集文本字段并将其替换为不同的文本(语言)。一切顺利,但我无法在不重新加载页面的情况下 return 返回它。
首先,我希望替换的所有文本字段 属性 都称为 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);
没有正确的效果。
<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
标签中,以便再次替换。如果对你有帮助,请告诉我。