JS:用链接替换链接。与链接的链接

时间:2014-09-21 01:48:33

标签: javascript

我要制作一个文本块,这样如果你点击一个单词,就会被一个词汇替代词取代。

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;。

我相信,我目前遇到的问题是逃脱字符。

所以,如果你的回答可以说明我可能会在一般情况下出错,我将不胜感激。感谢。

2 个答案:

答案 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>