IE7和setAttribute()删除类

时间:2011-06-24 08:31:35

标签: javascript internet-explorer-7 removeclass setattribute

我有一个非常有趣的问题。 我正在写一个允许你放大/缩小图像的插件。我有3个按钮:关闭(关闭'窗口'),放大,缩小。 放大/缩小按钮也有禁用版本。当您达到最小/最大变焦量时,它会被激活。

如果打开要缩放的图片,可以看到一个活动的缩小按钮和一个禁用的放大按钮(因为我在打开时设置了最大值)。当您第一次单击缩小按钮时,放大按钮应该摆脱禁用的类。 它适用于Safara,Chrome,Firefox 3.6 / 4/5,IE8,但不适用于IE7。

放大按钮有一个ID和类,我想强制IE7从元素中删除特定的类。首先,我使用了removeClass(),但它没有用。然后我使用setAttribute(),它适用于除IE7之外的所有浏览器。

这是一个例子。 因此,当您打开要缩放的图像时,缩小按钮具有ID =“缩放按钮”和5个类:缩放图标,缩放图标小,缩放按钮,缩放按钮禁用,变焦按钮禁用项。 我想删除2个'禁用'类。所以我用这个:

var elementZoomButtonIn = document.getElementById("zoom-button-in");
elementZoomButtonIn.setAttribute("class", "zoom-icon zoom-icon-small zoom-button-in");

我尝试在插入非禁用类之前将类设置为空,但是没有用。

此方法在IE7中有效吗? ( - :

谢谢,伙计们!

1 个答案:

答案 0 :(得分:6)

setAttribute()getAttribute()通常在IE 7及更早版本中被破坏(以及更高版本中的兼容模式)。请改用元素的className属性:

elementZoomButtonIn.className = "zoom-icon zoom-icon-small zoom-button-in";

即使IE中没有setAttribute()getAttribute(),但使用等效的DOM属性通常更容易,更可靠。