我试图通过访问名为' name'的类来创建数组。但是,当我提醒数组时,我只能在一个块中获取名称列表。我想我可能正在使用.each()错误。我想返回一个单独列出名称的数组。我非常感谢任何帮助!
jquery
$('.dropdown-content ul li span').click(function(){
$('.hiddenfield').val($(this).html());
$('form').submit(function(){
var arr=[];
$('.name').each( function()
arr.push(('.dropdown-content').val($(this).text()));
alert(arr);
})
});
});
答案 0 :(得分:1)
您可以使用map()
功能执行此操作。将click
和submit
事件分开。
$('form').submit(function(){
var arr=[];
var arr = $('.name').map( function()
return $(this).text();
}).get();
alert(arr);
});
$('.dropdown-content ul li span').click(function() {
$('.hiddenfield').val($(this).html());
});
答案 1 :(得分:1)
两个问题:
submit
事件处理程序不应嵌套在click
处理程序中。每次点击submit
时,这都会在表单上绑定新的<li>
事件。<强>代码:强>
$('.dropdown-content ul li span').click(function () {
$('.hiddenfield').val($(this).html());
});
$('form').submit(function () {
var arr = [];
$('.name').each(function () { // <-- Missed { here
arr.push($('.dropdown-content').val($(this).text()));
// ^ Missed `$` here
alert(arr);
});
});
var arr = $('.name').map(function () {
return $.trim($(this).text()); // Use trim to remove leading and trailing spaces
}).get();