我的 HTML 页面中有一些自定义元素。为了对其进行一些修改,我编写了一个 JavaScript。
它有一些自定义元素。这些元素是有意添加的。
样本来源:
<div>
<br />
<a name="IDATLQHE"></a>
<h2 class="subhead" xmlns="">
<dev>
<dd>
<span>abcd</span>
</dd>
<rr>
<span>
<a title="google" href="http://google.com">google.com</a>
</span>
</rr>
</dev>
</h2>
</div>
需要的输出:
我想用元素的内容替换<a>
元素中的<rr>
元素内容<dd>
。(元素和<rr>
是自定义元素。)<dd>
<dev>
JavaScript 编写:
<script type="text/javascript">
var devs = document.getElementsByTagName('dev');
for(var i = 0, len = devs.length; i < len; i++)
{
var dev = devs[i],
h2 = dev.getElementsByTagName('rr'),
h3 = dev.getElementsByTagName('dd');
if(h2.length === 1)
{
var aa= h2[0],
aaa=aa.getElementsByTagName('a');
if(h2.length === 1 && h3.length === 1)
{
aaa[0].innerHTML = h3[0].innerHTML;
h3[0].innerHTML=null;
}
}
}
</script>
该脚本在 Firefox 中运行良好,但在 IE 中无法正常运行。
编辑:
添加 HTML 元素并添加不同的类属性后。
<div>
<br />
<a name="IDATLQHE"></a>
<h2 class="subhead" xmlns="">
<div class="dummy">
<div class="dummyy">
<span>abcd</span>
</div>
<div class="dummyyy">
<span>
<a title="google" href="http://google.com">google.com</a>
</span>
</div>
</div>
</h2>
</div>
修改后的 Java 脚本:
<script type="text/javascript">
var divs = document.getElementsByClassName('dummy');
for(var i = 0, len = divs.length; i < len; i++)
{
var div = divs[i],
h2 = div.getElementsByClassName('dummyyy'),
h3 = div.getElementsByClassName('dummyy');
if(h2.length === 1)
{
var aa= h2[0],
aaa=aa.getElementsByTagName('a');
if(h2.length === 1 && h3.length === 1)
{
aaa[0].innerHTML = h3[0].innerHTML;
h3[0].innerHTML=null;
}
}
}
我仍然面临同样的问题。它不适用于 IE(版本 8)。
任何人都可以建议进行更改以使其在 IE 和 Firefox 中都可以工作吗?