使用每个类名创建数组

时间:2016-01-25 13:55:51

标签: jquery arrays each

我试图通过访问名为' name'的类来创建数组。但是,当我提醒数组时,我只能在一个块中获取名称列表。我想我可能正在使用.each()错误。我想返回一个单独列出名称的数组。我非常感谢任何帮助! html

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);
            })
    });
    });

2 个答案:

答案 0 :(得分:1)

您可以使用map()功能执行此操作。将clicksubmit事件分开。

$('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)

两个问题:

  1. submit事件处理程序不应嵌套在click处理程序中。每次点击submit时,这都会在表单上绑定新的<li>事件。
  2. 语法错误在下面的代码中突出显示
  3. <强>代码:

    $('.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);
        });
    });
    

    要获取文字数组,您可以将$.map$.get一起使用。

    var arr = $('.name').map(function () {
        return $.trim($(this).text()); // Use trim to remove leading and trailing spaces
    }).get();