我要制作一个文本块,这样如果你点击一个单词,就会被一个词汇替代词取代。
E.g。 ''可怕 - 的 - 猫''是一个词汇替代“恐龙”,因为如果你用任何文本中的前者替换后者,意思都不会改变。
但是,即使在这个早期阶段,我也无法使用替换innerHTML元素所需的功能。
以下是函数外观的示例和粗略概念:
<!DOCTYPE html>
<html>
<body>
<p><a href="#" id="Test_1" onclick=" replace(id,'Replacement 1') ">Test 1</a></p>
<p><a href="#" id="Test_2" onclick=" replace(id,'Replacement 2') ">Test 2</a></p>
<script>
function replace(x, y) {
document.getElementById(x).innerHTML = y;
}
</script>
</body>
</html>
(当我将它作为.html文件保存到我的桌面时起作用,但由于某种原因不能在jsfiddle上保存(否则我会链接到它。)
我希望您向我展示修改过的代码,这样如果我点击&#34;测试1&#34;,我会得到&#34;替换1&#34;。 然后,如果我点击&#34;替换1&#34;,我得到&#34; ReReplacement 1&#34;。
我相信,我目前遇到的问题是逃脱字符。
所以,如果你的回答可以说明我可能会在一般情况下出错,我将不胜感激。感谢。
答案 0 :(得分:0)
<强> *** *** EIDT 强>
这个或其他的作品
<a href="#" id="Test_1" onclick=" replace('Test_1','Replacement 1') ">Test 1</a>
答案 1 :(得分:0)
我让这个工作,虽然公平,即使你的基本代码我永远不会得到你所说的相同的错误。我正在使用data-replaced
属性来确定是否已经调用了替换。我添加了第三个参数,以防以后更改字符串。如果没有,无论您看到prefix
,只需使用您要使用的字符串文字进行更改。
<body>
<p><a href="#" id="Test_1" onclick=" replace(this.id,'Replacement 1','Re') ">Test 1</a></p>
<p><a href="#" id="Test_2" onclick=" replace(this.id,'Replacement 2','Re') ">Test 2</a></p>
<script>
function replace(x, y, prefix) {
var el = document.getElementById(x);
var replace_text = y;
if(el.getAttribute('data-replaced')!=='true'){
el.setAttribute('data-replaced',true);
}else{
replace_text = prefix+el.innerHTML;
}
el.innerHTML = replace_text;
}
</script>
</body>