Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/17.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 用其innerHTML替换锚点_Javascript_Regex_Replace_Innerhtml - Fatal编程技术网

Javascript 用其innerHTML替换锚点

Javascript 用其innerHTML替换锚点,javascript,regex,replace,innerhtml,Javascript,Regex,Replace,Innerhtml,我想用它的innerHTML替换一个链接,它是如何完成的 例如: Bla bla bla <a href="#nogo">No link here</a> bla bla bla 试图用其innerHTML替换节点,但无法获取节点本身中的文本 我想我必须使用正则表达式,但我不知道如何使用 编辑:谢谢大家的快速回复!我似乎还是做不好。看起来还有更多的事情要做 我也在使用prototype js 我得到了一些包含链接的文本。如果文本包含链接,则应将其替换为其innerHTM

我想用它的innerHTML替换一个链接,它是如何完成的

例如:

Bla bla bla <a href="#nogo">No link here</a> bla bla bla
试图用其innerHTML替换节点,但无法获取节点本身中的文本

我想我必须使用正则表达式,但我不知道如何使用

编辑:谢谢大家的快速回复!我似乎还是做不好。看起来还有更多的事情要做

我也在使用prototype js

我得到了一些包含链接的文本。如果文本包含链接,则应将其替换为其innerHTML。 它看起来像这样:

<td id="text">This is some text <a href="/link/Go_%28To%29" title="Go (to)">goto</a>. Some more text.</td>
实际的href得到警告!(本地主机//链接/转到%28到%29)

$('text'.childElements()[0].up()获取实际的td父元素

所以我用

if($('text').childElements()[0])
检查文本是否包含链接

我想这有点离题了,但实际上我不能正确理解a元素。有什么建议吗?
也许regexp是最好的选择?

outerHTML
设置为
innerHTML

window.onload = function() {
  var ancs = document.getElementsByTagName("A");

  for(var i = 0; l = ancs.length; i < l; i++) {
    var anc = ancs[i];
    if(anc.href.substring(0, 1) == "#")
      anc.outerHTML = anc.innerHTML;
  }
}
window.onload=function(){
var ancs=document.getElementsByTagName(“A”);
对于(变量i=0;l=ancs.length;i
outerHTML
设置为
innerHTML

window.onload = function() {
  var ancs = document.getElementsByTagName("A");

  for(var i = 0; l = ancs.length; i < l; i++) {
    var anc = ancs[i];
    if(anc.href.substring(0, 1) == "#")
      anc.outerHTML = anc.innerHTML;
  }
}
window.onload=function(){
var ancs=document.getElementsByTagName(“A”);
对于(变量i=0;l=ancs.length;i
试试这个:

var aElems = document.getElementsByTagName("a");
for (var i=0, n=aElems.length; i<n; ++i) {
    var elem = aElems[i];
    elem.parentNode.replaceChild(document.createTextNode(elem.innerHTML), elem);
}
var aElems=document.getElementsByTagName(“a”);
对于(var i=0,n=aElems.length;i请尝试以下方法:

var aElems = document.getElementsByTagName("a");
for (var i=0, n=aElems.length; i<n; ++i) {
    var elem = aElems[i];
    elem.parentNode.replaceChild(document.createTextNode(elem.innerHTML), elem);
}
var aElems=document.getElementsByTagName(“a”);

对于(var i=0,n=aElems.length;i我强烈建议使用一个Javascript库来完成这类工作

下面是一个使用原型的单行程序,它将实现以下功能:

$$('a').each( function( a ) { a.replace( a.innerHTML ) } )
它只是遍历页面中的每个标记,并将其替换为其innerHTML


jQuery在这方面也非常出色。

我强烈建议使用一个Javascript库来完成这类工作

下面是一个使用原型的单行程序,它将实现以下功能:

$$('a').each( function( a ) { a.replace( a.innerHTML ) } )
它只是遍历页面中的每个标记,并将其替换为其innerHTML


jQuery对于这类事情也很好。

或者另一种方式,抵消了链接(没有jQuery,我不喜欢):

创建测试链接:

javascript:var a=document.createElement("a");a.href="#nogo";a.innerText="NOGO";document.body.appendChild(a);void(0);
和取消设置href属性:

javascript:for(var i=0;i<document.links.length;i++)if(document.links[i].hash.toLowerCase()=="#nogo")document.links[i].removeAttribute("href");void(0);

javascript:for(var i=0;i或其他方式,使链接无效(没有jquery,我不喜欢它):

创建测试链接:

javascript:var a=document.createElement("a");a.href="#nogo";a.innerText="NOGO";document.body.appendChild(a);void(0);
和取消设置href属性:

javascript:for(var i=0;i<document.links.length;i++)if(document.links[i].hash.toLowerCase()=="#nogo")document.links[i].removeAttribute("href");void(0);

javascript:for(var i=0;i最后,我用一个丑陋的
replace(/]+(>$)/g,“\n”)
解决了这个问题。还有很多事情我没有很好地记录,这是我的错。

最后,我用一个丑陋的
replace(/]+(>$)/g,“\n”)解决了这个问题
。还有很多事情我没有很好地记录下来,这是我的错。

简而言之,这将完成您的工作:

var a=document.links;

for(var x=0;x

a[x].outerHTML=a[x].innerHTML;x--};

或者,我们可以使用一些“纯脚本魔法”或经得起未来考验的经典,而不是前面的悖论:

var a = document.links;
while( a.length > 0 ){ a[0].outerHTML = a[0].innerHTML }

简而言之,这将完成您的工作:

var a=document.links;

for(var x=0;x

a[x].outerHTML=a[x].innerHTML;x--};

或者,我们可以使用一些“纯脚本魔法”或经得起未来考验的经典,而不是前面的悖论:

var a = document.links;
while( a.length > 0 ){ a[0].outerHTML = a[0].innerHTML }

您是否有任何参考点?例如包装跨距或div,或者链接的ID(如果有)?您是否需要保留链接本身内部的任何html?例如
?没有链接内部没有html的情况。可能的重复您是否有任何参考点?例如wr应用span或div或链接的ID(如果有)?您是否需要保留链接本身中可能存在的任何html?例如
?不存在链接中存在html的情况。outerHTML的可能副本??不知道该副本…似乎只是IE,尽管这里有一个FF解决方法:outerHTML??不知道这个问题……似乎只有IE才知道,尽管这里有一个FF解决方法:这个方法在还没有附加到DOM的对象上也有效吗?它对我不起作用,但我也无法在任何情况下获得锚定。不,恐怕你必须在加载DOM后运行它。这个方法也可以吗在尚未附加到DOM的对象上运行时是否正常?这对我不起作用,但我也无法在任何情况下获得锚。不,恐怕您必须在加载DOM后运行它。