2014-10-15 3 views
3

data- 특성을 사용하여 대안을 만드는 것 이외에는 단단한 솔루션이없는 문제가 발생했습니다. 그러나, 나는 아주 이상하게 만나는 행동을 발견하고 그 주위에 더 좋은 방법이 있는지 궁금해합니다.IE 11은 요소 콘텐츠의 일부로 의사 콘텐츠를 고려합니다.

은 다음 코드 조각을 고려하십시오

HTML을

<div id="test">This is a test!</div> 

CSS

#test:after 
{ 
    content: "...This shouldn't be part of text()!"; 
} 

JS

$(document).ready(function() { 
    $(document).on("click", "#test", function() { 
     alert($(this).text()); 
    }); 
}); 

내가 다루고있는 문제는 IE 11이 div37의 콘텐츠의 일부로 :after 의사 셀렉터의 콘텐츠를 사용하는 것으로 보입니다. 사업부에 클릭하면, IE 11은 경고 말이 표시됩니다 것을 의미 :

This is a test!

파이어 폭스와 크롬 모두 후자를 표시됩니다 그러나

This is a test!...This shouldn't be part of the text()!

을, 나는 경고가 말 예상 경보. 나는 IE가 여분의 data- -attributes 등을 사용하지 않고 후자의 경고를 표시하도록하는 것이 가능한지 알고 싶다.

이 예에서는 FIDDLE입니다.

+0

IE9 및 IE10에서 완벽하게 작동합니다! – dippas

+0

Internet Explorer 11에서 이러한 종류의 버그가 가득 찼습니다. 호환 모드로 시작하기 만하면됩니다. – MrPk

+0

저의 작품 : IE 11.0.9600 – strah

답변

0

감사합니다, 나는 가능한 솔루션 생각했다. html()을 가져 와서 콘텐츠를 가져 와서 div의 더미에 다시 넣을 수 있습니다. text()을 다시 가져옵니다. 아주 단순한 일을하는 것은 마치 많은 것들처럼 보이지만 작동합니다.

HTML

<div id="test"><span>This is a test!</span></div> 

JS

$(document).ready(function() { 
    $(document).on("click", "#test", function() { 
     var html = $(this).html(); 
     var text = $("<div />").html(html).text(); 
     alert(text); 
    }); 
}); 

는이 FIDDLE업데이트를 참조하십시오.

1

.text()를 Here과 같이 .html()로 변경해보십시오. 그것은 IE 11.0.9600.17351에 잘

코드 (버전과이 버전) 작동 : 씨 E의 대답에

$(document).ready(function() { 
    $(document).on("click", "#test", function() { 
     alert($(this).html()); 
    }); 
}); 
+0

제안 해 주셔서 감사합니다.하지만 그건 저에게 효과가 없을 것입니다. 예를 들어 텍스트가'span' 엘리먼트에 싸여 있다면,이 태그들도 보여줄 것입니다. 나는 원하지 않습니다. 그러나 귀하의 솔루션은 제게 대안 솔루션을 제공 했으므로 고맙습니다. :) – ZiNNED