【问题标题】:document.getElementById("…").className = "…"; Not working in IEdocument.getElementById("...").className = "...";不能在 IE 中工作
【发布时间】:2011-12-29 21:53:15
【问题描述】:

我在这里创建了一个业务生成器:http://minespress.net/web_apps/business-cards/

我使用document.getElementById("…").className = "…"; 创建了一个预览窗格,它可以在单击(缩略图)时切换背景图像,并根据名片的设计在文本 div 周围移动。这在 FF、Chrome 和 Safari 中完美运行。当我在 IE 中尝试它时,onClick 没有发生任何事情。

我还应该提到,我的拇指是单选按钮,需要根据它们是否被选中来更改表单操作。再次在 IE 之外的其他浏览器中正常工作。是否有一些 IE 错误或者我只是在做一些完全错误的事情?

这是我的代码示例:

<input
    style="display:none"
    checked="checked"
    name="group1"
    id="2"
    value='http://minespress.net/web_apps/business-cards/img/twinkle-blue.jpg'
    type="radio"
    onclick="document.getElementById('card').className ='Default'; document.getElementById('compname').className ='', document.getElementById('slogan').className ='', document.getElementById('leftinfo').className ='', document.getElementById('rightinfo').className =''" />

【问题讨论】:

    标签: javascript internet-explorer getelementbyid classname


    【解决方案1】:

    IE 8 不支持将图像作为输入字段的标签。这就是为什么我的单选按钮不起作用的原因。现在我只需要弄清楚如何解决这个问题。

    【讨论】:

    【解决方案2】:

    改用 setAttribute:

    var ele = document.getElementById('card')
    ele.setAttribute('class', 'Default');
    

    【讨论】:

    • 不应该是setAttribute('class', 'Default')吗?
    • @NullUserExceptionఠ_ఠ:setAttribute 版本的小提琴在 IE 9 上不起作用。
    • 这对我也不起作用。我正在考虑尝试制作 JS,所以它不是内联的,但在做这件事时遇到了麻烦。此站点上的课程更改ezineasp.net/Samples/Javascript/Javascript-DOM/… 在 IE 中确实有效
    • 我仍然不能让它在 IE 8 中工作。现在上面列出的网站也不能工作。我真的不知所措。有人可以看看它在 IE 8 中是否适用于他们吗?
    【解决方案3】:

    您是否尝试将,s 更改为;s? IE 可能比其他浏览器更挑剔...

    改变

    "document.getElementById('card').className ='Default'; document.getElementById('compname').className ='', document.getElementById('slogan').className ='', document.getElementById('leftinfo').className ='', document.getElementById('rightinfo').className =''"

    "document.getElementById('card').className ='Default'; document.getElementById('compname').className =''; document.getElementById('slogan').className =''; document.getElementById('leftinfo').className =''; document.getElementById('rightinfo').className =''"

    看看能不能解决你的问题。

    【讨论】:

    • 不幸的是,这没有帮助。这一定是一些我没有看到或意识到的小问题。感谢您的回复
    • 我用 IE 9 检查了你的网站。除了前两张卡(你在document.getElementById('card').setAttribute('class', 'Default')'; 中有语法错误,最后一张' 已过时),它现在似乎工作正常。
    • 你能在 IE 8 中试用吗?我只是无法让它在那里工作。我很沮丧。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-26
    相关资源
    最近更新 更多