javascript - JQuery.each() : find elements containing input

标签 javascript jquery

我有一个表,其中有一个 thead 部分和一个 tbody 部分。我分别使用 jQuery 来查找和计算 table 中的所有 TH。这很好用。但与此同时,我想检查 tbodyTHTD 是否包含任何输入元素。

这是我目前所拥有的:

jQuery('#' + _target).each(function () {

        var $table = jQuery(this);
        var i = 0;
        jQuery('th', $table).each(function (column) {
            if (jQuery(this).find("input")) {
                dataTypes[i] = { "sSortDataType": "input" }
            }
            else {
                dataTypes[i] = { "sSortDataType": "html" }
            }

            i++;
        });
    });

我希望这些信息足以让您帮助我吗?

最佳答案

dataTypes = $('#' + _target + ' th').map(function(i, th) {
  var $table = $(th).closest('table');
  var pos = $table.index(th) + 1;
  return { "sSortDataType": $table.find('td:nth-child('+pos+')').is(':has(input)') ? 'input' : 'html' };
});

编辑:如果您在单个表上运行它(在这种情况下,原始示例中的 each 调用没有多大意义),它会变得更简单:

dataTypes = $('#' + _target + ' th').map(function(pos, th) {
  return { "sSortDataType": $(th).closest('table').find('td:nth-child('+(pos+1)+')').is(':has(input)') ? 'input' : 'html' };
});

关于javascript - JQuery.each() : find elements containing input,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2810540/

相关文章:

javascript - D3 - 在某些图层上禁用/重新启用鼠标悬停

javascript - 使用表单输入谷歌地图数据

jquery - 元素在移动版 chrome 和 safari 中不可见

javascript - JS语法打断页面

javascript - Chrome 和 Google 网络字体的问题。显示来自 Firefox 的不同输出

javascript - 如何使 JS 对象的属性不可枚举?

javascript - 如果使用 Django 或 JavaScript 选择其他字段,如何禁用一个字段?

javascript - Tap 的函数签名(K 组合器)

javascript - 使用 javascript 和 while 循环隐藏/显示 div

javascript - 每次用户重新访问页面时,如何在 div 中显示保存在本地存储中的新图像?