jQuery получает атрибуты

Я ищу способ захватить пользовательские атрибуты элемента с jQuery.

<span id='element' data-type='foo' data-sort='bar'></span>

Я надеюсь добираться: ["data-type", "data-sort"] как массив.

Кто-либо знает, как сделать это?

Спасибо.

9
задан Nick Craver 6 June 2010 в 15:25
поделиться

2 ответа

Вы можете использовать .attributes свойство DOM и выполнить цикл, например:

var arr = document.getElementById('element').attributes, attributes = [];
//or if you're inside a jQuery loop, just use this.attributes
//e.g.: var arr = $("span").get(0).attributes, attributes = [];
for(var i = 0; i < arr.length; i++) {
  if(arr[i].name.indexOf("data-") == 0) //only ones starting with data-
    attributes.push(arr[i].name);
}
alert(attributes); ​//use it for something, result is ["data-type", "data-sort"]

Вы можете увидеть рабочую демонстрацию здесь , помимо захватив элемент, это вообще не относится к jQuery, поэтому при необходимости вы можете легко удалить его полностью.

20
ответ дан 4 December 2019 в 09:12
поделиться

просто $('#element').attr('data-type'); и $('#element').attr('data-sort');

извините, ответил до того, как прочитал весь вопрос :-/ не думаю, что есть встроенная функциональность, чтобы получить их как массив, получите первый, получите второй и затем создайте массив вручную.

0
ответ дан 4 December 2019 в 09:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: