SetAttribute在IE7中不起作用

时间:2011-11-24 17:32:24

标签: javascript jquery

我正在使用jQuery 1.6.1和attr()方法,它在除IE7之外的所有浏览器上都能正常工作。

在控制台中,它突出显示了jQuery JS中的setAttribute函数,并说:未实现

我认为IE7不支持,所以我试图解决它:

if(Object.prototype.hasOwnProperty('setAttribute')){
  $(e).attr(key, value);
}else{
  e[key] = value;
}

它还在告诉我:

对象不支持此操作

这是什么解决方案?

2 个答案:

答案 0 :(得分:1)

jQuery很好地处理所有奇怪的情况,通常不需要解决任何问题。另请注意ŠimeVidas所说的setAttribute未在Object.prototype上定义,即使它是,在IE8中,较低的HTML元素也不会从Object继承,因此特征检测不会可能按预期工作。

key变量的价值是多少?如果更合适,请考虑使用prop(),如果您使用类,请考虑使用addClass()

答案 1 :(得分:1)

duri是完全正确的。即使setAttribute在IE7上不起作用,jQuery的.attr()也可以。 jQuery背后的重点是平滑浏览器之间的这些差异,并为您提供一个框架,让常见的操作“正常”。

从代码中删除条件,然后保留:

$(e).attr(key, value);

让jQuery为您处理剩下的事情;这就是它的用途。

如果仍然无效,请使用e,key和value的值更新您的问题,人们可能会进一步提供帮助。