在Chrome和IE(不兼容)中,自定义标记在检查和导航DOM时效果很好。
在IE +兼容模式下,它不起作用。
以下是jsbin中的一些示例代码:http://jsbin.com/ozajeh/1/edit
<html>
<!-- Run this in IE 8/9, possibly 10, with compatibility mode on to see the issue -->
<head>
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script>
if (document.createElement) {
document.createElement("myelement");
}
</script>
</head>
<body>
<script>
var div = $("<div>content</div>");
if( div.contents().length > 0 && div[0].childNodes.length > 0){
alert("found content in div");
}
var myElement = $("<myelement>content</myelement>");
if (myElement.contents().length > 0 && myElement[0].childNodes.length > 0) {
alert("found content in myelement");
}else{
alert("IE issue: cannot find content in myelement");
}
</script>
</body>
</html>
如何让Internet Explorer处于兼容模式以正确处理标记?
当前,会发生什么,是myElement.nextSibling()返回文本节点,这显然是不正确的。
我可以找出基于属性/值测试的解决方法,但有没有更坚实的方法来处理这种情况?