我正在用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');
}
答案 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');
}
希望你明白。
答案 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>