我正在使用jQuery 1.6.1和attr()
方法,它在除IE7之外的所有浏览器上都能正常工作。
在控制台中,它突出显示了jQuery JS中的setAttribute函数,并说:未实现
我认为IE7不支持,所以我试图解决它:
if(Object.prototype.hasOwnProperty('setAttribute')){
$(e).attr(key, value);
}else{
e[key] = value;
}
它还在告诉我:
对象不支持此操作
这是什么解决方案?
答案 0 :(得分:1)
jQuery很好地处理所有奇怪的情况,通常不需要解决任何问题。另请注意ŠimeVidas所说的setAttribute
未在Object.prototype
上定义,即使它是,在IE8中,较低的HTML元素也不会从Object
继承,因此特征检测不会可能按预期工作。
key
变量的价值是多少?如果更合适,请考虑使用prop()
,如果您使用类,请考虑使用addClass()
。
答案 1 :(得分:1)
setAttribute
在IE7上不起作用,jQuery的.attr()
也可以。 jQuery背后的重点是平滑浏览器之间的这些差异,并为您提供一个框架,让常见的操作“正常”。
从代码中删除条件,然后保留:
$(e).attr(key, value);
让jQuery为您处理剩下的事情;这就是它的用途。
如果仍然无效,请使用e,key和value的值更新您的问题,人们可能会进一步提供帮助。