2016-03-08 18 views
0

計劃從HTML頁面上的選擇中獲取特定ID值(此處的選擇意味着選中框)。這裏是我的代碼按鈕單擊事件(按鈕,將讀取該行號或ID):打印與HTML中的複選框相關聯的按鈕點擊事件JavaScript

$("a", button).click(function() { 
      $('#groups').find('tr').each(function() { 
       var row = $(this); 
       if (row.find('input[type="checkbox"]').is(':checked')) { 
        console.log($(this)); 
      } 
     }); 
}); 

這將返回的行addtional信息+ tr標籤,但是,我只是想它的ID部分。下面是示例輸出我正在出上面的代碼:

[tr#row-12150.row.oddSelected, context: tr#row-12150.row.oddSelected] 
[tr#row-12151.row.evenSelected, context: tr#row-12151.row.evenSelected] 

這意味着我已經選擇12150 and 12151#groups表。我如何只拉行號12150 and 12151而不是整個詳細的輸出,我想這個存儲在一個數組/(JS陣列)多行號。

回答

1

你有行作爲每.find('tr'),你應該只能夠去:

console.log($(this).attr('id')); //this should show the id in your console. 

使你的代碼變成:

$("a", button).click(function() { 
      $('#groups').find('tr').each(function() { 
       var row = $(this); 
       if (row.find('input[type="checkbox"]').is(':checked')) { 
        console.log($(this).attr('id')); 
      } 
     }); 
}); 

然後只是讓你可以使用數字:

var number = $(this).attr(id).split('-')[1] //assuming it's always row-<<some number>> 

把他們放在一起:

$("a", button).click(function() { 
       $('#groups').find('tr').each(function() { 
        var row = $(this); 
        if (row.find('input[type="checkbox"]').is(':checked')) { 
         var number = $(this).attr('id').split('-')[1] //assuming it's always row-<<some number>>; 
         console.log(number); 
       } 
      }); 
    }); 

將其存儲在一個數組:

$("a", button).click(function() { 
        var checkedRows = []; //define empty array. 
        var count = 0; //keep a counter to use for the array. 
        $('#groups').find('tr').each(function() { 
         var row = $(this); 
         if (row.find('input[type="checkbox"]').is(':checked')) { 
          var number = $(this).attr('id').split('-')[1]; 
          checkedRows[count] = number; //add the number to our array. 
          count++; //increase the count 
        } 
       }); 
     }); 
+0

@JanR真棒,我正要後同樣的問題,謝謝你更新答案。我如何將整個結果存儲在數組中?我想通過AJAX調用拋出這個數組,所以我需要考慮的不僅僅是在控制檯 –

+0

上更新我的回答 – JanR

+0

陣列更新,一旦在數組中,你可以在循環之後做一個ajax調用,以便將它發送給api – JanR

0

確保您的形式和你的按鈕有ID的第一那就試試這個來代替:

$('#buttonId').click(function(){ 
    $('#formId input:checked').each(i, e){ 
    console.log($(e).attr('id')); 
    } 
});