Я ищу способ захватить пользовательские атрибуты элемента с jQuery.
<span id='element' data-type='foo' data-sort='bar'></span>
Я надеюсь добираться: ["data-type", "data-sort"]
как массив.
Кто-либо знает, как сделать это?
Спасибо.
Вы можете использовать .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, поэтому при необходимости вы можете легко удалить его полностью.
просто $('#element').attr('data-type');
и $('#element').attr('data-sort');
извините, ответил до того, как прочитал весь вопрос :-/ не думаю, что есть встроенная функциональность, чтобы получить их как массив, получите первый, получите второй и затем создайте массив вручную.