如何用javascript替换具有特定ID的文本

时间:2014-02-08 20:52:23

标签: javascript html text replace

我正在用JavaScript进行一些初学练习,以便学习,但我想出了一个问题。

我想要完成的是用特定ID替换文本。我有3个链接都带有文字“引用”,它们有自己的ID(q1,q2,q3)。但是我正在调用的函数正在替换“Quote”的第一个实例,所以问题显然是我的功能。

我怎样才能使它只替换那个ID“Quote”。

这是我的功能:

function quotation(c){
    if ( c == q1){
    var x = document.getElementByID("q1");
    document.body.innerHTML = document.body.innerHTML.replace(x.innerHTML, 'Hello World');
}

2 个答案:

答案 0 :(得分:0)

根据您的代码,我将HTML框定为

<a id='q1'>Quota</a>
<a id='q2'>Quota</a>
<a id='q3'>Quota</a>

根据您的代码,您正在更改q1元素的文本。所以它按预期工作。由于一些边缘情况,我搞砸了我的答案。现在您需要做的只是在a标签中添加一个类,如

<a id='q1' class='q'>Quota</a>
<a id='q2' class='q'>Quota</a>
<a id='q3' class='q'>Quota</a>

在你的函数中,迭代每个元素;这样你就可以替换所有的元素。

var x = document.getElementsByClassName("q");
for (var i = 0; i < x.length; i++) {
    document.body.innerHTML = document.body.innerHTML.replace(x[i].innerHTML, 'Hello World');
}

JSFiddle

希望你明白。

答案 1 :(得分:0)

如果我正确理解了这个问题,就像这个JSFiddle一样简单:

<a id="q1" href="#">Quote</a>
<a id="q2" href="#">Quote</a>
<a id="q3" href="#">Quote</a>

<script type="text/javascript">

  function quotation(id, text) {
    var q = document.getElementById(id);
    if (q) q.innerHTML = text;
  }
  quotation('q1', 'Hello World');

</script>