getAttribute() 在 IE 11 中无法与 Sizzle 一起使用
getAttribute() not working with Sizzle in IE 11
我有一些 Javascript 代码可以在所有其他浏览器上正常工作,但(当然)IE。有人可以告诉我我的代码是否有问题,如果没有,建议修复?
注意: IE returns null
for href
属性。
for(var a=Sizzle("*"),i=0;i<a.length;i++) {
a[i].onclick=function(){
window.open(this.getAttribute("href"),"_self");
}
}
尝试仅选择实际具有 href
属性.
的元素
类似于:
for(var a=Sizzle("[href]"), i=0; i<a.length;i++) { ... }
问题的最初原因可能是事件顺序的处理方式。有关一些背景信息,请参阅 here。您不仅向实际具有 href
属性的链接添加了事件处理程序,还向其所有父级添加了事件处理程序。
无论哪种方式,使用 *
选择器而不是更具体的选择器的情况都不多。通常,您应该尽可能使用最具体的选择器。
我有一些 Javascript 代码可以在所有其他浏览器上正常工作,但(当然)IE。有人可以告诉我我的代码是否有问题,如果没有,建议修复?
注意: IE returns null
for href
属性。
for(var a=Sizzle("*"),i=0;i<a.length;i++) {
a[i].onclick=function(){
window.open(this.getAttribute("href"),"_self");
}
}
尝试仅选择实际具有 href
属性.
类似于:
for(var a=Sizzle("[href]"), i=0; i<a.length;i++) { ... }
问题的最初原因可能是事件顺序的处理方式。有关一些背景信息,请参阅 here。您不仅向实际具有 href
属性的链接添加了事件处理程序,还向其所有父级添加了事件处理程序。
无论哪种方式,使用 *
选择器而不是更具体的选择器的情况都不多。通常,您应该尽可能使用最具体的选择器。