2014-10-30 36 views
0

我在PhoneGap的應用程序下面的代碼:複選框事件和控制數組 - 如何在代碼中處理?

function onDeviceReady() { 
      var listOfSports = new Array(["Aikido"],["Air Sports"],["American Football"],["Angling"],["Archery"],["Yoga"]); 
      $.each(listOfSports, function (i) { 
       console.log(i); 
       var li = $('<li><input class="checkbox" type="checkbox"' + 'id="' + listOfSports[i] + '"' + 'label="' + listOfSports[i] + '">' + listOfSports[i] + '</li>') 
        .appendTo("ul.listViewContainer"); 
      }); 
      $("#listViewContainer").listview(); 
      $("#listViewContainer").listview("refresh"); 
     } 

如何,我可以得到選中項的值和值檢查時添加到一個數組或刪除選中的時候?

回答

1

就像這樣。這會將所有複選框ID存儲在一個數組中。

var arr = []; 

function onDeviceReady() { 
     var listOfSports = new Array(["Aikido"],["Air Sports"],["American Football"],["Angling"],["Archery"],["Yoga"]); 
     $.each(listOfSports, function (i) { 
      console.log(i); 
      var li = $('<li><input class="checkbox" type="checkbox"' + 'id="' + listOfSports[i] + '"' + 'label="' + listOfSports[i] + '">' + listOfSports[i] + '</li>') 
       .appendTo("ul.listViewContainer"); 
     }); 
     $("#listViewContainer").listview(); 
     $("#listViewContainer").listview("refresh"); 

     $(".checkbox").click(function() { 
      if ($(this)[0].checked) 
      { 
       arr.push($(this).attr("id")); 
      } 
      else 
      { 
       arr = $.grep(arr, function(a) { 
          return a != $(this).attr("id"); 
         }); 
      } 
     }); 
    } 

編輯:

只是一個小錯誤。這裏小提琴:http://jsfiddle.net/wyfr8/207/

 else 
     { 
      var check = $(this); 
      arr = $.grep(arr, function(a) { 
         return a != $(check).attr("id"); 
        }); 
     } 
+0

謝謝。我知道這是一個古老的問題,但直接解答的答案非常容易理解! – anthonyhumphreys 2014-10-30 13:58:27

+0

快速獎金問題 - 如何刪除未經檢查的元素? – anthonyhumphreys 2014-10-30 16:26:34

+1

else語句假設要這樣做?你想從數組或html中移除它? – 2014-10-30 17:13:22

相關問題