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 の両方で動作させるために行う変更を提案できますか?