2017-09-29 8 views
1

を使用して見たときの要素を削除します。ページがInternet Explorerで見たときページは、私は次のコードビットを以下に示しているInternet Explorerの

<div class="timer" id="timer"><img src="http://i.imgur.com/87XaOWA.png"><p class="close-message" id="close-message"></p></div> 

は今、私はdivを削除することにしたいです。

IE doesn't support the .remove() function以来、私は問題hereを回避するために次の解決策を見つけました。私はまた、どのブラウザがそのページを見るのに使われているのかを検出できる次のfiddleを見つけました。私は間違って何をやっている

// Internet Explorer 6-11 
var isIE = /*@[email protected]*/false || !!document.documentMode 

if (isIE = false) { 
jQuery("#timer").eq(i).remove(); 
} 

// Internet Explorer 6-11 
var isIE = /*@[email protected]*/false || !!document.documentMode 

if (isIE = false) { 
var node = document.getElementsById('timer')[i]; 
node.parentNode.removeChild(node); 
} 

:無駄にIEで見たときに

私はdivタグを削除するには、次の2つのifのステートメントを試してみましたか?個別に2つのコンポーネントは正常に動作しますが、それらを一緒に使用しようとすると機能しません。

+0

(偽isIE ==)** –

+1

あなたはそれを意味する@TemaniAfif **べきであるならば、それは**すべきですか? –

+0

はい、私はすべきではありません= –

答えて

2

あなたの最初のエラーは次のとおりです。

if (isIE = false) { 

あなたは比較のために二重の等号を使用する必要があり、あなたのケースで、それは次のようになります。

if (isIE == true) { 

秒の誤差がある:

document.getElementsById('timer')[i] 

document.getElementById('timer') 

var isIE = /*@[email protected]*/false || !!document.documentMode; 
 

 
if (isIE == true) { 
 
    var node = document.getElementById('timer'); 
 
    node.parentNode.removeChild(node); 
 
} 
 

 
// 
 
// in jQuery: remove: .eq(i).... 
 
// 
 
if (isIE == true) { 
 
    jQuery("#timer").remove(); 
 
}
<div class="timer" id="timer"><img src="http://i.imgur.com/87XaOWA.png"><p class="close-message" id="close-message"></p></div>

+0

私のJSは 'div'の中にいないので、' isIE =タグに '#timer 'が含まれています。しかし、私のコードでこれが動作するのは何らかの理由でJSFiddleではうまくいきませんでした。もしうまくいけば、この質問を投稿する前に間違いを犯したかもしれません。 – ChippeRockTheMurph

+0

@ChippeRockTheMurphコードを[DOMContentLoaded](https://developer.mozilla.org/it/docs/Web/Events/DOMContentLoaded)にラップすることを検討することがあります。 – gaetanoM

関連する問題