【问题标题】:is there a way to make DOMElement.attributes list clean(standard) in older internet explorers?有没有办法在旧的 Internet Explorer 中使 DOMElement.attributes 列表干净(标准)?
【发布时间】:2011-12-01 07:43:04
【问题描述】:

如题

Element.attributes 数组内容会让您在 Internet Explorer 6-7-8 中大吃一惊

实际上这个getter返回了javascript对象的整个属性列表

有一种方法可以模拟旧 IE 浏览器中的标准方式吗?

请随时纠正我的英语。提前谢谢你。

【问题讨论】:

  • 您是否要在 IE 中列出 DOM 元素的所有属性?
  • 是的,我正在尝试在 IE 中列出 dom 元素的属性

标签: javascript dom internet-explorer-8 internet-explorer-7 cross-browser


【解决方案1】:

由于浏览器关闭了IE,下面的代码我有一些注意事项:

  • 代码只会列出具有特定值(非空)的属性。除非,IE 将列出单个元素的所有大约 100 多个属性。我认为这是不必要的。
  • 您将获得一些额外的属性,例如“tabindex”、“readOnly”...尽管您的元素代码很简单,例如:“<input type=text>”。这是因为 IE 的方式来做到这一点。

好吧,代码将是这样的:

$(function(){
    var A = $('.targetElement').get(0).attributes
    try{
        var i=0;
        while(A.item(i)){
            if (A.item(i).value != '' && A.item(i).value != 'null'){
                $('body').append( A.item(i).name+ ' = '+ A.item(i).value + '<br>' )
            }
            i++
        }
    }catch(e){}
})

【讨论】:

  • 对不起,我不懂jquery,你能用标准的方式写这个吗?顺便说一句,我试图仅列出标签声明中实际附加的属性...解析 innerHTML 会更好吗?
  • 对不起,但我确实不熟悉没有 jQuery 的情况下编写 JS 代码。对于您的想法,我有一个计划:1-getElement_HTMLCode >> 2-分析代码 >> 3-去除属性。我认为最难的部分是第 1 步。
  • 要获取元素自己的 HTMLCode - 没有 jQuery- 我认为该行应该是:获取元素 --> 克隆它 --> 将其附加到空白 div --> 获取 div 的 innerHTML -- > 取出元素标签。
  • yes 解析一个 cloneNode(false) 会足够快,因为清除任何内容
猜你喜欢
  • 2020-06-10
  • 2011-08-13
  • 1970-01-01
  • 1970-01-01
  • 2016-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多