2015-04-13 3 views
2

У меня есть форма, которая имеет несколько элементов ввода, select, textarea. С jQuery, Как я могу получить значения атрибута имени для каждого элемента? Я попытался следующие, но он не работает:jQuery выбор значения атрибута для нескольких элементов с атрибутом имени

var names = $('[name]'); 
names.each(function(){ 
    console.log(names.attr('name')); 
}) 

ответ

5

Вы должны использовать this в each() для обозначения элемента в текущей итерации. Ваш текущий код пытается получить name из набора логических элементов. Попробуйте это:

var names = $('[name]'); 
names.each(function(){ 
    console.log($(this).attr('name')); 
}) 
3

Вы все еще используете имена в вашей each функции. Попробуйте это:

var names = $('[name]'); 
names.each(function(index, name){ 
    console.log($(name).attr('name')); 
}) 
-3

Дайте ввод ID затем вызвать метод attr()

$("#id").attr("name"); 
+0

Невозможно работать с несколькими именами атрибутов. – Portekoi

0

Это должно петлю вокруг всех необходимых элементов и вывести имя и значение на консоли.

$('input,select,textarea').each(function() { 
    var thisname = $(this).attr('name'); 
    var thisval = $(this).val(); 
    console.log('name = ' + thisname); 
    console.log('value = ' + thisval); 
}); 
0

Вы также можете попробовать этот путь.

var $name = $("[name]"); 
$name.get().map(function(elem,index){ 
    console.log($(elem).attr("name")); 
}); 
0

Добавить класс во все элементы, которые вы хотите получить. Затем вы получаете все элементы этого класса и повторяете их, чтобы получить их имена.

formElements = $('.form-element'); 
for(key in formElements) { 
     name = formElements[key].attr('name'); 
     // do what you wish with the element's name 
} 

P.S. Возможно, вам придется обернуть formElements [key] в $(), не проверили его.

0
// Selects elements that have the 'name' attribute, with any value. 
    var htmlElements = $("[name]"); 

    $.each(htmlElements, function(index, htmlElement){ 
     // this function is called for each html element wich has attribute 'name' 

     var $element = $(htmlElement); 

     // Get name attribute for input, select, textarea only 
     if ($element.is("input") || 
      $element.is("select") || 
      $element.is("textarea")) { 
      console.log($element.attr("name")); 
     } 
    }); 
Смежные вопросы