使用每个 class 名称创建数组
create array using each class name
我正在尝试通过访问名为 'name' 的 class 创建一个数组。但是,当我提醒阵列时,我只能在一个块中获得名称列表。我想我可能使用了 .each() 错误。我想要 return 一个单独列出名称的数组。我将不胜感激任何帮助!
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);
})
});
});
您可以像下面那样使用 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());
});
两个问题:
submit
事件处理程序不应嵌套在 click
处理程序中。每次单击 <li>
时,这将在表单上绑定一个新的 submit
事件。
- 下面代码中突出显示的语法错误
代码:
$('.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();
我正在尝试通过访问名为 'name' 的 class 创建一个数组。但是,当我提醒阵列时,我只能在一个块中获得名称列表。我想我可能使用了 .each() 错误。我想要 return 一个单独列出名称的数组。我将不胜感激任何帮助!
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);
})
});
});
您可以像下面那样使用 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());
});
两个问题:
submit
事件处理程序不应嵌套在click
处理程序中。每次单击<li>
时,这将在表单上绑定一个新的submit
事件。- 下面代码中突出显示的语法错误
代码:
$('.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();