Как получить все атрибуты <input>
Привет.
Как с помощью jQuery получить массив используемых атрибутов элемента? Например: <input name="test" id="myid" size=50> На выходе я хочу получить: name = test id = myid size = 50. Сейчас я обращаюсь к объекту html напрямую, с помощью element = $('#myid')[0].attributes, и перебираю все атрибуты в цикле. Но при таком подходе у объекта есть абсолютно все атрибуты (например, loop, onclick, onfocus и т.д.), а мне нужны только те, которые реально есть и указаны! |
var name = $('#myid').attr('name');
var id = $('#myid').attr('id'); var size = $('#myid').attr('size'); var params = [name, id, size]; |
Margarita, да, только мне нужно, что бы это все (name,id и size) попало в params, либо в цикле, либо еще как.
Я не хочу вбивать *.attr вручную! Для этого я и создал топик. |
Я имею в виду, есть какой либо способ получить все использующиеся атрибуты объекта.
Какой либо метод, типа getAllAtribute или похожий. |
ну отсечь лишние наверное
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<input name="test" id="myid" size=50>
<input name="test2" id="myid2" size=100>
<script>
$(function () {
$(':text').each(function () {
var at = this.attributes;
var arr = [];
for (var key in at) {
if (at[key].nodeName != undefined) {
arr.push(at[key].name + ' = ' + at[key].value);
}
}
alert(arr)
});
});
</script>
UPD: хотя и так не плохо
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<input name="test" id="myid" size=50>
<input name="test2" id="myid2" size=100>
<script>
$(function () {
$(':text').each(function () {
var at = this.attributes;
var len = at.length;
var arr = [];
for (var i = 0; i < len; i++) {
arr.push(at[i].name + ' = ' + at[i].value);
}
alert(arr);
});
});
</script>
А так ещё лучше
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<input name="test" id="myid" size=50>
<input name="test2" id="myid2" size=100>
<script>
$(function () {
$(':text').each(function () {
var arr = [];
$(this.attributes).each(function () {
arr.push(this.name + ' = ' + this.value);
});
alert(arr);
});
});
</script>
|
bes, Вы сумасшедший! -)
Спасибо большое! |
Цитата:
<script src="http://code.jquery.com/jquery-latest.min.js"></script>
<input name="test" id="myid" size=50>
<input name="test2" id="myid2" size=100>
<script>
$(function () {
$(':text').each(function () {
var arr;
arr = $.map(this.attributes, function (attribute) {
return attribute.name + ' = ' + attribute.value;
});
alert(arr);
});
});
</script>
|
Цитата:
|
| Часовой пояс GMT +3, время: 22:25. |