Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/81.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 用H1标签替换img标签_Javascript_Html - Fatal编程技术网

Javascript 用H1标签替换img标签

Javascript 用H1标签替换img标签,javascript,html,Javascript,Html,我正在编写一个简单的GreaseMonkey脚本。我没有使用jQuery的权限 我需要替换此HTML: <img border="0" title="NEW_UNI_LOGO.png" src="/OA_MEDIA/NEW_UNI_LOGO.png"></img> <h1>Production</h1> 使用此HTML: <img border="0" title="NEW_UNI_LOGO.png" src="/OA_MEDIA/N

我正在编写一个简单的GreaseMonkey脚本。我没有使用jQuery的权限

我需要替换此HTML:

<img border="0" title="NEW_UNI_LOGO.png" src="/OA_MEDIA/NEW_UNI_LOGO.png"></img>
<h1>Production</h1>

使用此HTML:

<img border="0" title="NEW_UNI_LOGO.png" src="/OA_MEDIA/NEW_UNI_LOGO.png"></img>
<h1>Production</h1>
生产
我试过:

var cells = document.querySelectorAll('body');
for (var i = 0; i < cells.length; i++) {
        john = cells[i].innerHTML;
        john = john.replace('<img border="0" title="NEW_UNI_LOGO.png" src="/OA_MEDIA/NEW_UNI_LOGO.png"></img>', '<h1>Production</h1>');
        cells[i].innerHTML = john;
}
var cells=document.querySelectorAll('body');
对于(变量i=0;i
但不幸的是,它不起作用

img标记的HTML被放置在一个表中。我试图替换的HTML代码片段在页面上只出现一次

谢谢

试试:

var img = document.querySelector("img[title='NEW_UNI_LOGO.png']");
var h1 = document.createElement('h1');
h1.appendChild(document.createTextNode("Production");
img.parentNode.replaceChild(h1,img);
这将查找特定的图像元素(使用标题作为标识符-根据需要进行调整),并将其替换为新创建的H1元素。

尝试以下操作:

var imgs=document.getElementsByTagName('img');
for(var i=imgs.length-1;i>=0;i--){
    if(imgs[i].title == 'NEW_UNI_LOGO.png') {
      var h1 = document.createElement('h1');
      h1.innerHTML = 'Production';
      imgs[i].parentNode.insertBefore( h1, imgs[i] );
      imgs[i].parentNode.removeChild(imgs[i]);  
    }
}
代码如下:

,您可以像这样检查图像文件名:

var img_file_name = 'NEW_UNI_LOGO.png'
var imgs=document.getElementsByTagName('img');
for(var i=imgs.length-1;i>=0;i--){
    if(imgs[i].src.toLowerCase().indexOf('/'+img_file_name.toLowerCase())!=-1) {
      var h1 = document.createElement('h1');
      h1.innerHTML = 'Production';
      imgs[i].parentNode.insertBefore( h1, imgs[i] );
      imgs[i].parentNode.removeChild(imgs[i]);  
    }
}

下面是第二部分的代码:

将第一行替换为:
var cells=document.body你好,我刚刚粘贴了document.queryselectoral('body');在我的chrome控制台中,它主要返回dom,我相信通过它运行只会获取主体的子元素,我不认为您要替换的单元直接是主体的子元素,但更嵌套的是no?img标记不需要关闭,因为这里的
img
无效,HTML将其转换为有效的DOM元素,而您无法用精确的字符串替换它…谁对我的评论投了赞成票,这是错误的谢谢!我尝试更改以检查图像源而不是标题,因此使用了if(imgs[I].src='/OA\u MEDIA/NEW\u UNI\u LOGO.png'),但它没有检测到它-我也尝试了imgs[I].source以防万一,但这也不起作用。希望我错过了一些明显的东西。Thankstorry-意识到我毕竟可以使用title属性。谢谢大家对我的帮助this@dumbo-检查测试图像文件名的“src”属性的替代解决方案