IE7和setAttribute()删除类

b_b*_*min 2 javascript setattribute internet-explorer-7 removeclass

我有一个非常有趣的问题.我正在写一个允许你放大/缩小图像的插件.我有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");
Run Code Online (Sandbox Code Playgroud)

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

这种方法在IE7中运行吗?( - :

感谢你们!

Tim*_*own 6

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

elementZoomButtonIn.className = "zoom-icon zoom-icon-small zoom-button-in";
Run Code Online (Sandbox Code Playgroud)

即使setAttribute()并且getAttribute()在IE中没有被破坏,使用等效的DOM属性仍然通常更容易和更可靠.