1

私の開発者が私に小さなテンプレートを投げたので、編集して作業用のモックアップを作成することができました。彼がそれを作ったとき、それはうまくいった。彼はIE8でそれを作った。彼が私にそれを電子メールで送り、私はIE11/Chrome/Firefoxにそれを開かなかった。どんな援助?IE11、Chrome、Firefoxではこのコードは動作しませんが、IE8では動作しますか?

<!DOCTYPE html> 
 
<html> 
 
\t <head> 
 
\t \t <script> 
 
\t \t \t function handleVisibility(box){ 
 
\t \t \t \t var visible = (box.checked) ? "block": "none"; 
 
\t \t \t \t box.parentElement.nextSibling.style.display = visible; \t \t \t \t \t \t \t 
 
\t \t \t } 
 
\t \t </script> 
 
\t </head> 
 
\t <body> 
 
\t \t 
 
\t \t \t <div id="divTransfer"> 
 
\t \t \t \t <input id="cbTransferRefer" type="checkbox" value="TransferRefer" onClick = "handleVisibility(this)">Transfer/Refer<br> 
 
\t \t \t </div> 
 
\t \t \t <div id="pTransferTypes" style="display:none" > 
 
\t \t \t \t Transfer Types: 
 
\t \t \t \t <select> 
 
\t \t \t \t <option value="referred">Referred</option> 
 
\t \t \t \t <option value="internalTaskForm">Escalated via Internal Task Form</option> 
 
\t \t \t \t <option value="cci">Escalated via CCI</option> 
 
\t \t \t \t <option value="pdf">Escalated via PDF Form</option> 
 
\t \t \t \t <option value="transferred">Transferred</option> 
 
\t \t \t \t </select> \t 
 
\t \t \t </div> 
 
\t \t \t 
 
\t \t \t 
 
\t \t \t <div id="divTemplate"> 
 
\t \t \t \t <input id="cbTemplateRefer" type="checkbox" value="TemplateRefer" onClick = "handleVisibility(this)">Template/Refer<br> 
 
\t \t \t </div> 
 
\t \t \t <div id="pTemplateTypes" style="display:none" > 
 
\t \t \t \t Template Types: 
 
\t \t \t \t <select> 
 
\t \t \t \t <option value="referred">Referred</option> 
 
\t \t \t \t <option value="internalTaskForm">Escalated via Internal Task Form</option> 
 
\t \t \t \t <option value="cci">Escalated via CCI</option> 
 
\t \t \t \t <option value="pdf">Escalated via PDF Form</option> 
 
\t \t \t \t <option value="transferred">Transferred</option> 
 
\t \t \t \t </select> \t 
 
\t \t \t </div> 
 
\t \t 
 
\t </body> \t 
 
</html>

+0

'nextSibling'ではなく' nextElementSibling'を呼び出してみてください。 – Sampson

+0

2つのチェックボックスの後にテキストで表示する必要があります。チェックボックスを選択すると、その下にドロップダウンが表示され、下のチェックボックスをスライドするとテキストが下に移動してスペースを確保します。現在、チェックボックスを選択すると何も行われません。 –

答えて

0

あなたは、必ずしもあなたがnextElementSiblingをしたい、nextSiblingを望んでいません。親要素の後ろに空白がある場合は、次の兄弟はとなり、空白はとなります。したがって、要素とその兄弟の間の空白をすべて削除するか、またはnextElementSiblingを呼び出してtextNodeを取得しないようにします。

getElementSiblingはIE 9以上でのみサポートされています。しかし、IE 8のサポートが必要な場合は、単に空白を削除して、nextSibling、またはleverage a polyfillにしてください。

+0

それは明らかに機能します。ありがとう!さて、これは単に "私の問題を解決する"スレッドではありません、あなたは2つの違いについて短い教育をすることができますか?モックアップについては少しずつコードを学習しています。 –

+0

もちろん、 'nextSibling'はそれが何であるかにかかわらず次の項目を返します。これは要素またはtextNodeになります。しかし、要素だけがスタイル可能になります。 'nextElementSibling'を呼び出すことで、最も近い兄弟要素を取得します(white-space/textNodesの後にある可能性があります)。 – Sampson

関連する問題