jQuery选择具有name属性的多个元素的属性值

时间:2015-04-13 08:32:30

标签: javascript jquery

我有一个包含多个input,select,textarea元素的表单。使用jQuery,我如何获取每个元素的name属性值?我尝试过以下但不起作用:

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

7 个答案:

答案 0 :(得分:5)

您需要在this中使用each()来引用当前迭代中的元素。您当前的代码正在尝试获取逻辑上不正确的一组元素的name。试试这个:

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

答案 1 :(得分:3)

您仍然在each功能中使用名称。试试这个:

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

答案 2 :(得分:0)

这应循环所有必需的元素,并将名称和值输出到控制台。

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

答案 3 :(得分:0)

您也可以尝试这种方式。

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

答案 4 :(得分: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],尚未对其进行测试。

答案 5 :(得分: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"));
        }
    });

答案 6 :(得分:-3)

提供输入ID,然后调用attr()方法

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