javascript - 检查动态生成的复选框

标签 javascript jquery html

我正在动态生成复选框,如下所示:

entries.each(function()
{
    if($(this).find('parentcategoryid').text() == 0)                
    {
        xmlArr += '<span><input type="checkbox" data-mini="true" name="category'+$(this).find('categoryid').text()+'" id="checkbox'+$(this).find('categoryid').text()+'" class="techAreasCheckBox" style="margin-top: 5px;"/><label class="techAreasLabel">'+$(this).find('categoryname').text()+'</label></span><br>'; 
    } 
    else
    {
        xmlArr;
    }                   
}); // Entries.Each function

假设生成的复选框名称如下:category1, category2, category3, category8, category10, category54, category55, category56, category, 59, category62, category132, category133。

另外,我有一个包含 4 个数字的数组:2、54、8、10....

我想检查名称属性以数组中的这些数字结尾的复选框。我该如何进行?

注意:这些是动态生成的复选框。

最佳答案

要选中复选框,您需要做的就是按照here 中的说明添加选中的属性。 .

下面是一种解决方案。首先,您想存储 Id 而不是每次都查找它,因为它更快。其次,我使用 $.inArray 函数来确定类别是否在包含应检查的数字的数组中。最后,我用了一个三元来添加checked属性。

var numberArray = [2, 54, 8, 10];

entries.each(function() {
     if($(this).find('parentcategoryid').text() == 0) {
          var categoryId = $(this).find('categoryid').text();
          var categoryInArray = $.inArray(categoryId, numberArray) !== -1;

          xmlArr += '<span><input type="checkbox" data-mini="true" name="category'+categoryId+'" id="checkbox'+categoryId+'" class="techAreasCheckBox" style="margin-top: 5px;"' + categoryInArray ? ' checked="checked" ' : '""/><label class="techAreasLabel">'+$(this).find('categoryname').text()+'</label></span><br/>'; 
     }
}); // Entries.Each function

或者,您可以只使用另一个 if 语句。

entries.each(function() {
     if($(this).find('parentcategoryid').text() == 0) {
          var categoryId = $(this).find('categoryid').text();
          var categoryInArray = $.inArray(categoryId, numberArray) !== -1;

          if(categoryInArray) {
          xmlArr += '<span><input type="checkbox" data-mini="true" name="category'+categoryId+'" id="checkbox'+categoryId+'" class="techAreasCheckBox" style="margin-top: 5px;" checked="checked"/><label class="techAreasLabel">'+$(this).find('categoryname').text()+'</label></span><br/>'; 
          } else {
          xmlArr += '<span><input type="checkbox" data-mini="true" name="category'+categoryId+'" id="checkbox'+categoryId+'" class="techAreasCheckBox" style="margin-top: 5px;"/><label class="techAreasLabel">'+$(this).find('categoryname').text()+'</label></span><br/>'; 
          }
     }
}); // Entries.Each function

关于javascript - 检查动态生成的复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14196058/

相关文章:

javascript - onClick() 从传递给 Django 模板的函数中获取新值

javascript - 使用 Cloud Zoom jQuery 插件实现图像缩放效果

javascript - 难以应用两个不同的脚本

html - 我可以使用 Google Analytics 确定用户浏览器中的 HTML5 支持吗?

javascript - Bootstrap 图像轮播在 Angular 上不起作用

javascript - jQuery 从表单获取值返回未定义

javascript - 为什么 angularJS 中的 $http.delete 不起作用?

javascript - 根据完整关键字突出显示搜索关键字的文本

javascript - 我无法单击具有 `<a>` 标记且没有 href 属性的链接

php - 如何从 php 脚本获取 JSON 中 mysql 表的所有值?