Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.10.2012, 10:24
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Как получить все атрибуты <input>
Привет.
Как с помощью jQuery получить массив используемых атрибутов элемента?
Например:
<input name="test" id="myid" size=50>

На выходе я хочу получить:
name = test
id = myid
size = 50.
Сейчас я обращаюсь к объекту html напрямую, с помощью element = $('#myid')[0].attributes, и перебираю все атрибуты в цикле.
Но при таком подходе у объекта есть абсолютно все атрибуты (например, loop, onclick, onfocus и т.д.), а мне нужны только те, которые реально есть и указаны!
Ответить с цитированием
  #2 (permalink)  
Старый 08.10.2012, 10:44
Аватар для Margarita
Аспирант
Отправить личное сообщение для Margarita Посмотреть профиль Найти все сообщения от Margarita
 
Регистрация: 14.09.2012
Сообщений: 83

var name = $('#myid').attr('name');
var id = $('#myid').attr('id');
var size = $('#myid').attr('size');
var params = [name, id, size];
Ответить с цитированием
  #3 (permalink)  
Старый 08.10.2012, 10:49
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Margarita, да, только мне нужно, что бы это все (name,id и size) попало в params, либо в цикле, либо еще как.
Я не хочу вбивать *.attr вручную!
Для этого я и создал топик.
Ответить с цитированием
  #4 (permalink)  
Старый 08.10.2012, 11:00
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

Я имею в виду, есть какой либо способ получить все использующиеся атрибуты объекта.
Какой либо метод, типа getAllAtribute или похожий.
Ответить с цитированием
  #5 (permalink)  
Старый 08.10.2012, 12:29
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

ну отсечь лишние наверное
<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, 08.10.2012 в 13:27.
Ответить с цитированием
  #6 (permalink)  
Старый 08.10.2012, 13:38
Аспирант
Отправить личное сообщение для Kotakota Посмотреть профиль Найти все сообщения от Kotakota
 
Регистрация: 12.07.2011
Сообщений: 71

bes, Вы сумасшедший! -)
Спасибо большое!
Ответить с цитированием
  #7 (permalink)  
Старый 08.10.2012, 16:48
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

Сообщение от bes
А так ещё лучше
map как раз для такого и присобачен, почему бы не использовать его?
<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>
Ответить с цитированием
  #8 (permalink)  
Старый 08.10.2012, 17:22
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

Сообщение от melky
map как раз для такого и присобачен, почему бы не использовать его?
та конечно
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить атрибуты объекта korner Общие вопросы Javascript 20 21.07.2016 15:49
Как получить значение переменной из callback функции? Хиросим AJAX и COMET 5 24.04.2012 08:32
Как получить все данные формы? FINoM Общие вопросы Javascript 9 14.02.2012 20:40
Как получить raw data с image? lyapharov Общие вопросы Javascript 2 06.04.2011 23:20
Как получить название композиции из Windows Mepia Plyaer alx99 Javascript под браузер 1 18.02.2011 15:21