javascript - 无法使用 jQuery 选择器在 IE8 中选择 HTML5 元素的子元素

标签 javascript jquery dom html internet-explorer-8

我发现一些帖子有类似的问题,但这是不同的。在阅读另一篇文章后,我从 jQuery 1.4 升级到 1.4.2,但问题仍然存在。我还尝试在兼容模式下运行 IE 8,但似乎没有任何效果。当然,它在 Chrome 中运行得非常好。

这是标记:

<section class="pleaseWaitButton">
    <p><img src="images/please_wait.png" alt="Please wait" /></p>
    <p><input type="image" src="images/add_to_cart.png" alt="Add to cart"/></p>
</section>

这是在这种情况下确实唯一的 jQuery 选择器...

$('.pleaseWaitButton').length // 1

这里是不起作用的 jQuery 选择器!

$('.pleaseWaitButton').find('input').length // 0
$('.pleaseWaitButton input').length // 0
$('.pleaseWaitButton > p > input').length // 0

有什么想法吗?有人……吗?

最佳答案

Internet Explorer 8 对 HTML 5 有古怪的支持,IE6 和 IE7 只是不支持它。

您需要shiv HTML 5 元素,以便设置样式并正确使用方法/属性,例如 innerHTML、getElementsByTagName。

这将适用于 IE6-IE8:

<!doctype html> 
<html> 
<!--[if lt IE 9]>
<script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
<![endif]--> 
<section class="pleaseWaitButton"> 
    <p><img src="images/please_wait.png" alt="Please wait" /></p> 
        <p><input type="image" src="images/add_to_cart.png" alt="Add to cart"/></p> 
</section> 
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.js"></script> 
<script> 
    alert( $('.pleaseWaitButton').find('input').length ) 
    alert( $('.pleaseWaitButton input').length ) 
    alert( $('.pleaseWaitButton > p > input').length ) 
</script> 
</html> 

现场演示:http://medero.org/html5.html

关于javascript - 无法使用 jQuery 选择器在 IE8 中选择 HTML5 元素的子元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3352538/

相关文章:

javascript - Mocha 中的Sinon Stub 不工作

javascript - 为什么Unity 2018.2 WebAssembly加载间隔只有0%、90%、100%

jquery - 在滚动条上调整标题大小

javascript - 如果所选文本是 HTML,如何使用 javascript 获取所选 DOM?

javascript - 如何调用 HTML DOM 事件对象(例如 : onclick, onblur 等)嵌套函数?

javascript - 比较/过滤两个数组,其中数组 B 包含 A 的任何子字符串

javascript - Reactjs 和服务器上的数据

javascript - 使用函数 setTimeOut 和 jquery Cookie 的模态窗口

javascript - 如何获取单元格中嵌入的文本框的值

Javascript 无法识别函数