2016-01-25 41 views
0

我試圖通過訪問一個名爲'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); 
      }) 
    }); 
    }); 
+1

爲什麼'submit'嵌套在'click'內? – Tushar

+0

請張貼真實的代碼....不是代碼的圖像。任何人都應該能夠從圖像中複製代碼來嘗試幫助你? – charlietfl

+0

在'arr.push(('。dropdown-content')中缺少'$'' – Tushar

回答

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(); 
+0

非常感謝!能否解釋一下.get()在這種情況下會怎樣? – st4rgut

+0

歡迎@ st4rgut 。get()從jQuery對象返回一個數組。 – Tushar

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()); 
}); 
+0

返回一個jQuery對象而不是數組 – charlietfl