getAttribute()在IE 11中不与Sizzle一起使用

时间:2015-10-21 20:34:30

标签: javascript sizzle

我有一些Javascript代码可以在其他所有浏览器上运行,但(当然)IE。有人能告诉我我的代码是否有问题,如果没有,建议修复一下?

注意: IE为href属性返回for(var a=Sizzle("*"),i=0;i<a.length;i++) { a[i].onclick=function(){ window.open(this.getAttribute("href"),"_self"); } }

<textarea></textarea>
<script>
    var textarea = document.querySelector('textarea');
    textarea.addEventListener('input', function() {
        textarea.style.height = 'auto';
        textarea.style.height = textarea.scrollHeight + 'px';
    });
</script>

1 个答案:

答案 0 :(得分:2)

尝试仅选择实际具有href属性的元素。

类似的东西:

for(var a=Sizzle("[href]"), i=0; i<a.length;i++) { ... }

问题的原因可能是由于事件处理的处理方式。有关背景信息,请参阅here。您不仅要将事件处理程序添加到实际具有href属性的链接,还要添加其所有父项。

无论哪种方式,使用*选择器的情况都不是太多,而是更具体的情况。通常,您应该使用最具体的选择器。