Javascript 如何使用jQuery确定某个html表头是否存在?

Javascript 如何使用jQuery确定某个html表头是否存在?,javascript,jquery,html-table,Javascript,Jquery,Html Table,假设我有下表: <table id="mytable"> <thead> <tr> <th>Col 1</th> <th>Col 2</th> <th>Col 4</th> </tr> </thead> <tbody> <td>1</td> <td>2</td>

假设我有下表:

<table id="mytable">
<thead>
  <tr>
    <th>Col 1</th>
    <th>Col 2</th>
    <th>Col 4</th>
  </tr>
</thead>
<tbody>
    <td>1</td>
    <td>2</td>
    <td>3</td>
</tbody>
使用

console.log($('#mytable th:contains(Col 1')).length);
log($('#mytable th:contains(Col 50')).length)

第1列
第2列
第4列
1.
2.
3.

您可以使用
:contains
选择器,但它不使用精确的匹配标准,即,如果您将
列1
传递给选择器,并且其中一个元素具有
列12
文本内容,则它将选择该元素,因为它包含指定的文本。我会使用
过滤器
方法:

var hasColumn = $('#mytable thead th').filter(function() {
   return this.textContent === 'Col 1';
}).length > 0;
下面是一个普通的JavaScript替代方案:

function hasColumn(tblSel, content) {
    var ths = document.querySelectorAll(tblSel + ' th');
    return Array.prototype.some.call(ths, function(el) {
         return el.textContent === content;
    });
};

var hasCol = hasColumn('#mytable', 'Col 1');
var hasColumn = $('#mytable thead th').filter(function() {
   return this.textContent === 'Col 1';
}).length > 0;
function hasColumn(tblSel, content) {
    var ths = document.querySelectorAll(tblSel + ' th');
    return Array.prototype.some.call(ths, function(el) {
         return el.textContent === content;
    });
};

var hasCol = hasColumn('#mytable', 'Col 1');