嗯。。很奇葩的要求哈
举个栗子:<img id="nidaye" src="nidaye.com" οnclick="javascript:xx(xx)">
假如我不想改变这个标签也不想改原有的js文件怎么能获取到这个onclick
第一步:获取dom对象
var nidaye= document.getElementsByTagName("img");
nidaye.innerHTML 你猜会出现什么
嗯。。。
所以我采用了这种方法
function toInnerHTML(duixiang){
const div = document.createElement("div")
div.appendChild(duixiang);
var a=div.innerHTML;
return a;
}
然后亲测,好用。
但是这篇博客还没结束,就抛出了解决办法?
嗯。。。
亲测,有bug
执行过后的img会神秘消失。或许说不是神秘消失,是故意给他消失的
而且哈,最神奇的是执行次数多了,会消失一半
举个栗子:
有304个img标签,我要转字符串
很好,长度304,没问题,循环是这样的
//上面所知nidaye是一堆img
//假如现在长度为 304
for(var i=0;i<nidaye.length;i++){
toInnerHTML(nidaye[i]);
}
执行后就会发现循环只执行了 152次?然后
在上面 toInnerHTML里面的 div.appendChild(duixiang);就会报错?
这是什么鬼?我试了好多次,发现不管执行多少条,都是只执行一半 然后剩下一半就报错?
然后看页面?好神奇,每隔一个图片消失一个,就是 图1234 消失 图 2 4 这种
难道不应该一个一个的挨着消失吗?
改为这样:
function toInnerHTML(duixiang){
const div = document.createElement("div")
div.appendChild(duixiang.cloneNode(true));//多了个 .cloneNode(true)
var a=div.innerHTML;
return a;
}
原来的图片还让他在哪里呆着吧,老子复制一个