我有使用自动ID生成的复选框

我正在使用以下功能:

getAllSelectedFeeds = function() {
 var val = [];
 $('input:checkbox:checked').each(function(i) {
   val[i] = $(this).attr('id');
 });
 return val;
};


它会检查是否选中了任何复选框,但我只希望它针对其自动生成的ID(例如id="ctl00_m_g_95e8bffc_8200_46ac_887c_98522e26803c_ctl01_ctl02_selectedTask)中具有“ selectedTask”的那些复选框控件运行

通过仅选择在名为“ feedSelector”的div中选中的那些复选框,此javascript是否可以工作(使用jquery选择器)?
//获取选中的复选框ID

getAllSelectedFeeds = function() {
 var val = [];
 $('#feedSelector:input:checkbox:checked').each(function(i) {
  val[i] = $(this).attr('id');
 });
 return val;
};

最佳答案

getAllSelectedFeeds = function() {
 var val = [];
 $('input:checkbox:checked[id*=selectedTask]').each(function(i) {
   val[i] = $(this).attr('id');
 });
 return val;
};


(如果它始终以“ selectedTask”结尾,则可以使用$ =代替* =)

尽管我真的建议避免这样做,因为它必须在每个ID中搜索该字符串,这样效率低下。可能想在复选框中添加一个类,以便您可以对其进行查询,因为它会更快很多,尤其是当您开始获得很多复选框时:

getAllSelectedFeeds = function() {
 var val = [];
 $('input.selectedTask:checked').each(function(i) {
   val[i] = $(this).attr('id');
 });
 return val;
};

07-24 18:28
查看更多