假设我想将所有<img>
代码更改为页面上的<iframe>
代码。 javascript可以用于此目的吗?
有没有办法更改实际的代码类型,或者我是否必须首先删除<img>
然后创建<iframe>
,如果是这样,我如何确保新代码具有与旧标签相同的容器等?
执行此类替换的最简单,最友好的浏览方式是什么?
答案 0 :(得分:4)
虽然使用像jQuery
这样的库更方便,但你可以不使用这样的库(替换元素,而不是改变类型):
示例: http://jsfiddle.net/BvSvb/
var imgs = document.getElementsByTagName('img');
var i = imgs.length;
var parent;
var iframe = document.createElement( 'iframe' );
var currFrame;
while( i-- ) {
currFrame = iframe.cloneNode( false );
currFrame.setAttribute( 'src', imgs[ i ].getAttribute( 'src' ) );
parent = imgs[ i ].parentNode;
parent.insertBefore( currFrame, imgs[ i ] );
parent.removeChild( imgs[ i ] );
}
答案 1 :(得分:3)
使用标准接口,只有在创建该元素时才能设置DOM元素的类型。您可以通过标准方式明智地实现的最接近的是:
如果您想这样做,并需要帮助,请再次询问。
答案 2 :(得分:1)
无法更改tagName 您可以创建一个新元素,并将旧元素的属性分配给新元素,将childNodes移动到其中,并用新元素替换旧元素。
答案 3 :(得分:1)
您无法更改html标记名称的类型,但可以替换它们。一个简单的方法是使用jQuerys replacewith函数。
答案 4 :(得分:0)
您无法更改标签的类型,只能用不同的标签替换它们。
您可以通过设置newElement.innerHTML = oldElement.innerHTML
。