我有一个包含多个input,select,textarea元素的表单。使用jQuery,我如何获取每个元素的name属性值?我尝试过以下但不起作用:
var names = $('[name]');
names.each(function(){
console.log(names.attr('name'));
})
答案 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");