javascript - 在 html 标记中使用冒号并在 javascript 中处理其元素

标签 javascript html internet-explorer

为什么我的“myns:button”在 IE 6/7/8 中不像在 Firefox/Opera/Safari/Chrome 中那样变红?

<html>
    <head>
        <script type="text/javascript">
            window.onload = function() {
                var tmp = document.getElementsByTagName('myns:button');

                for (i = 0; i < tmp.length; i++) {
                    tmp[i].style.color = '#FF0000';
                }
            };
        </script>
    </head>
    <body>
        <myns:button>My NS Button</myns:button>
    </body>
</html>

我已经尝试将以下内容添加到我的 js 中:

document.createElement('myns:button');

但这在 IE 中不起作用,为什么? 谢谢。

最佳答案

与其他人一样,我真的建议您不要这样做。但是……

如果您真的想要,并且您不太关心验证,您可以这样做:

<html xmlns:myns='http://www.example.com/namespaces'>
    <head>
        <script type="text/javascript">
            window.onload = function() {
                 var tmp = document.getElementsByTagName(
                         (typeof document.body.scopeName == "undefined") ? 
                              'myns:button' : 'button');

                 for (i = 0; i < tmp.length; i++) {
                    if ((typeof tmp[i].scopeName == "undefined") || 
                            (tmp[i].scopeName == 'myns'))
                       tmp[i].style.color = '#FF0000';
                 }
            };
        </script>
    </head>
    <body>
        <myns:button>My NS Button</myns:button>
    </body>
</html>

更改 http://www.example.com/namespaces为您自己的命名空间名称。

在最新版本的 FF、Chrome、Opera 以及 IE6、IE7 和 IE8 中测试。

参见 http://msdn.microsoft.com/en-us/library/ms534388%28VS.85%29.aspx作为有关其在 IE 中如何工作的信息的起点。

关于javascript - 在 html 标记中使用冒号并在 javascript 中处理其元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2938031/

相关文章:

javascript - 如果购物车中的数量发生变化,如何更新价格

javascript - Div 不是从随机位置开始的

javascript - 尝试使用 jquery 从元素中删除所有 html

javascript - 如何防止 CSS3 转换使元素不可点击

jquery - IE 10 和 11 中的灰度?

javascript - 在特定元素的某个点将垂直滚动更改为水平滚动

javascript - select 中的原型(prototype) make 选项由提供的值选择

html - 使用 XML 包将 html 表抓取到 R 数据帧中

javascript - 难倒 : IE8 Message: Expected identifier, 字符串或数字行:82 字符:1 代码:0

css - 为什么在ie中,绝对定位的标志是在右边?