есть ли способ сделать список DOMElement.attributes чистым (стандартным) в старых internet Explorer?

#javascript #dom #internet-explorer-8 #internet-explorer-7 #cross-browser

#javascript #dom #internet-explorer-8 #internet-explorer-7 #кроссбраузерный

Вопрос:

как в теме

Содержимое массива Element.attributes поразит вас в Internet Explorer 6-7-8

на самом деле этот метод получения возвращает весь список свойств объекта javascript

есть ли способ эмулировать стандартный способ в старых браузерах IE?

не стесняйтесь исправлять мой английский. заранее благодарю.

Комментарии:

1. Вы пытаетесь перечислить все атрибуты элемента DOM в IE?

2. да, я пытаюсь создать список атрибутов элемента dom в IE

Ответ №1:

Поскольку браузер отключается от IE, у меня есть некоторые замечания по приведенному ниже коду :

  • В коде будет указан только атрибут, который имеет определенное значение (не null). Если только IE не перечислит все более 100 атрибутов для одного элемента. Я думаю, что в этом нет необходимости.
  • Вы получите еще несколько дополнительных атрибутов, таких как «tabindex», «Только для чтения»… хотя ваш код элемента просто такой: « <input type=text> «. Это причина IE способ сделать это.

Ну, код будет примерно таким :

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

Комментарии:

1. извините, я не понимаю jquery, вы можете написать это стандартным способом? Кстати, я пытаюсь перечислить только атрибуты, которые фактически прикреплены к объявлению тега … было бы лучше проанализировать innerHTML?

2. Извините, но я действительно не знаком с написанием JS-кода без jQuery. Для вашей идеи у меня есть план: 1-getElement_HTMLCode >> 2-Проанализировать код >> 3-Удалить атрибут. Я думаю, что самая сложная часть — это шаг 1.

3. Чтобы получить собственный htmlкод элемента — без jQuery — я думаю, что строка должна быть: получить элемент -> клонировать его -> добавить его в пустой div -> получить innerHTML div -> извлечь тег элемента.

4. да, разбор cloneNode (false) будет достаточно быстрым, потому что он будет очищен от любого содержимого