【问题标题】:create array using each class name使用每个类名创建数组
【发布时间】:2016-01-25 13:55:50
【问题描述】:

我正在尝试通过访问一个名为“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);
            })
    });
    });

【问题讨论】:

  • 请发布真实代码....不是代码图像。任何人都应该能够从图像中复制代码来帮助您?
  • 为什么submit嵌套在click里面?
  • arr.push(('.dropdown-content') 中缺少$

标签: jquery arrays each


【解决方案1】:

两个问题:

  1. submit 事件处理程序不应嵌套在click 处理程序内。这将在每次点击<li> 时在表单上绑定一个新的submit 事件。
  2. 以下代码中突出显示的语法错误

代码:

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

【讨论】:

  • 非常感谢!你能解释一下 .get() 在这种情况下的作用吗?
  • 欢迎@st4rgut。 get() 从 jQuery 对象返回一个数组。
【解决方案2】:

您可以使用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());
});

【讨论】:

  • 返回一个 jQuery 对象而不是一个数组
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-09
  • 2021-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多