Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ember.js/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 用原型查找并替换文本_Javascript_Prototype_Replace_Find - Fatal编程技术网

Javascript 用原型查找并替换文本

Javascript 用原型查找并替换文本,javascript,prototype,replace,find,Javascript,Prototype,Replace,Find,我不熟悉Prototype,想知道如何在类/ID中简单地“查找”一些文本并“替换”这些文本 我的html如下所示: <div id="test"> <a href="/test">test</a> <a href="/test2">test2</a> <a href="/test3">test3</a> <a href="/test4">test4</a> </div

我不熟悉Prototype,想知道如何在类/ID中简单地“查找”一些文本并“替换”这些文本

我的html如下所示:

<div id="test">
  <a href="/test">test</a>
  <a href="/test2">test2</a>
  <a href="/test3">test3</a>
  <a href="/test4">test4</a>
</div>
有什么办法吗?

使用DOM

var x=document.getElementById("test");
for(var i in x.childNodes){
    if(x.childNodes[i].tagName=='A'){
        x.childNodes[i].innerHTML=x.childNodes[i].innerHTML.replace(/test/,'success');
    }
}

下面是一种使用getElementsByTagName的不同方法

var r=[['Login','success'],['Register','donkey'],['Bla','...'],['Logout','Are you sure?']];
var x=document.getElementById("test");
var a=x.getElementsByTagName("a");
for(i in a){
    a[i].innerHTML=a[i].innerHTML.replace(r[i][0],r[i][1]);
}

嘿,马克-非常感谢。这会改变“第一个”,但是我如何用不同的文本来改变第二个或第三个呢?[再次非常感谢!]嗯,实际上,这两个都是,它循环所有的子节点,包括两个标签。啊:)如果第二个单词不是“成功”,我该怎么做?i、 例如,如果是“成功”和“驴子”?第二个和第三个文本不同?您可能需要在循环中计算它的第1、第2、第3位,并且可能需要3个
if
条件。那么像这样?如果(x.childNodes[1]。标记名=='A'){x.childNodes[1]。innerHTML=x.childNodes[1]。innerHTML.replace(/test/,'success');}我编辑了html以显示我的意思?:)
var r=[['Login','success'],['Register','donkey'],['Bla','...'],['Logout','Are you sure?']];
var x=document.getElementById("test");
var a=x.getElementsByTagName("a");
for(i in a){
    a[i].innerHTML=a[i].innerHTML.replace(r[i][0],r[i][1]);
}