Я хочу поместить все атрибуты в элемент HTML в массив: как у меня есть объект jQuery, который HTML выглядит так:
<span name="test" message="test2"></span>
Теперь один из способов - использовать описанный здесь парсер xml , но тогда мне нужно знать, как получить HTML-код моего объекта.
Другой способ - сделать это с помощью jquery, но как? количество атрибутов и имен являются общими.
Спасибо
Кстати: я не могу получить доступ к элементу с document.getelementbyid или что-то подобное.
getElementById
-var el = document.getElementById($(myObj).attr("id"));
get
метода ... например:var obj = $('#example').get(0);
Вы можете использовать этот простой плагин как $ ('# some_id'). GetAttributes ();
источник
Просто:
источник
Attr.nodeValue
не рекомендуется в пользуvalue
Google Chrome. Так что это может бытьthis.name + ':' + this.value
. Интерфейс AttrПоскольку в IE7 elem.attributes перечисляет все возможные атрибуты, а не только существующие, мы должны проверить значение атрибута. Этот плагин работает во всех основных браузерах:
Использование:
источник
Сеттер и геттер!
Использование:
источник
jQuery.attr
.jQuery.attr
в установщике, но, вероятно, было бы полезно использовать его и в установщике.Используйте
.slice
для преобразованияattributes
свойства в массивattributes
Свойство узлов DOM являетсяNamedNodeMap
, который представляет собой массив типа объекта.Массивоподобный объект - это объект, у которого есть
length
свойство и имена свойств которого перечислены, но в остальном имеет свои собственные методы и не наследуется отArray.prototype
Этот
slice
метод можно использовать для преобразования объектов, подобных массиву, в новый массив .источник
attrs
, вы можете получить доступ к имени атрибута соname
свойством элемента.Этот подход хорошо работает, если вам нужно получить все атрибуты с именем и значением в объектах, возвращаемых в массиве.
Пример вывода:
Если вам нужен только массив имен атрибутов для этого элемента, вы можете просто отобразить результаты:
источник
Roland Боуман «s ответ лучший, простой Vanilla путь. Я заметил несколько попыток jQ-плагинов, но они мне показались недостаточно «полными», поэтому я сделал свои собственные. До сих пор единственным препятствием была невозможность доступа к динамически добавленным атрибутам без непосредственного вызова
elm.attr('dynamicAttr')
. Однако это вернет все естественные атрибуты объекта элемента jQuery.Плагин использует простой вызов стиля jQuery:
Вы также можете добавить второй строковый параметр для получения только одного конкретного атрибута. Это на самом деле не нужно для выбора одного элемента, поскольку jQuery уже предоставляет
$(elm).attr('name')
, однако моя версия плагина допускает многократные возвраты. Так, например, вызов какРезультатом будет
[]
возврат массива объектов{}
. Каждый объект будет выглядеть так:Plugin
Соблюдается
jsFiddle
Показать фрагмент кода
источник
Намного более краткие способы сделать это:
Старый способ (IE9 +):
Способ ES6 (Edge 12+):
document.querySelector()
возвращает первый элемент в документе, который соответствует указанному селектору.Element.attributes
возвращает объект NamedNodeMap, содержащий назначенные атрибуты соответствующего элемента HTML.[].map()
создает новый массив с результатами вызова предоставленной функции для каждого элемента в вызывающем массиве.Демо-версия:
Показать фрагмент кода
источник
Это помогает?
Это свойство возвращает все атрибуты элемента в массив для вас. Вот пример.
Чтобы получить атрибуты многих элементов и упорядочить их, я предлагаю создать массив всех элементов, через которые вы хотите пройти цикл, а затем создать подмассив для всех атрибутов каждого элемента, проходящего через него.
Это пример скрипта, который будет перебирать собранные элементы и распечатывать два атрибута. Этот сценарий предполагает, что всегда будет два атрибута, но вы можете легко исправить это с помощью дальнейшего сопоставления.
источник
В каждом ответе здесь отсутствует самое простое решение, использующее метод элемента getAttributeNames !
Он извлекает имена всех текущих атрибутов элемента в виде обычного массива, который затем можно преобразовать в симпатичный объект ключей / значений.
источник
Представьте, что у вас есть элемент HTML, как показано ниже:
Один из способов получить все его атрибуты - преобразовать их в массив:
И ниже строка, которую вы получите (из примера), которая включает в себя все атрибуты:
источник
Попробуйте что-то вроде этого
а затем получить все атрибуты
для использования массива атрибутов
источник
имея
<div id="mydiv" a='1' b='2'>...</div>
можно использоватьисточник
Очень просто. Вам просто нужно перебрать элемент атрибутов и поместить их nodeValues в массив:
Если вам нужно имя атрибута, вы можете заменить «nodeValue» на «nodeName».
источник
Атрибуты для преобразования объекта
* Требуется: Лодаш
Это преобразует все атрибуты HTML во вложенный объект
Пример HTML:
<div custom-nested-path1="value1" custom-nested-path2="value2"></div>
Результат:
{custom:{nested:{path1:"value1",path2:"value2"}}}
Если для parseJson установлено значение true, значения json будут преобразованы в объекты
источник
В JavaScript:
Чтобы получить доступ к именам и значениям атрибутов:
источник