Jquery 检查每个tr中第一个td中的所有值是否包含相同的文本

Jquery 检查每个tr中第一个td中的所有值是否包含相同的文本,jquery,html,Jquery,Html,我有一个问题,我有一个动态创建的表(3x3、4x4或5x5),我试图查看每列中的文本是否从第一列开始相等 到目前为止我已经试过了 $('tr td:first-child').find('td:contains(X)'); <table id="grid"> <tbody> <tr> <td>X</td> <td></td> <td></td> <td></td>

我有一个问题,我有一个动态创建的表(3x3、4x4或5x5),我试图查看每列中的文本是否从第一列开始相等

到目前为止我已经试过了

$('tr td:first-child').find('td:contains(X)');

<table id="grid">
<tbody>
<tr>
<td>X</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td>X</td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
<td></td>
</tr>
</tbody>
</table>
$('trtd:first child')。查找('td:contains(X)');
X
X
上面是创建的表的示例,该表的第一列中有两个X
试图在每个tr中得到第一个孩子,但我认为这是错误的。我需要比较这些值,如果它们都相等,我需要停止搜索。

根据您的问题和评论,我相信您的要求如下:

  • 遍历表中的所有行
  • 对于每行,将所有后续列与第一列进行比较
    • 如果相同,请转到下一行
    • 如果不一样,停下来
考虑到这一点,您的逻辑将非常直截了当:

  • 迭代所有
    元素
  • 在每行中,获取第一列文本和所有后续列中的文本内容数组。这可以使用
    jQuery.map(…).get()完成。
  • 遍历此数组并将每个元素与第一列文本进行比较
    • 如果相等,则转到下一行(返回
      true
    • 如果是不同的,我们将停止(返回
      false
  • 以下是用JS编写的逻辑:

    // Iterate through each table row
    $('tr').each(function() {
      // Get text content if first column
      var firstColumnText = $('td', this).first().text();
    
      // Construct array of text from all remaining <td>s
      var otherColumnText = $('td', this).not(':first').map(function() {
        return $(this).text();
      }).get();
    
      // Iterate through array and check if something is different
      // Assume text is the same
      var isEquivalent = true;
      $.each(otherColumnText, function(idx, thisColumnText) {
        if (thisColumnText !== firstColumnText) {
          isEquivalent = false;
          return false;
        }
      });
    
      // Stop loop when we encounter the first non-equivalent row
      return isEquivalent;
    });
    
    
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    不同的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    同样的
    不同的
    同样的
    同样的
    同样的
    同样的
    同样的
    
    尝试这样做:

    var tablelelem=$('table');
    var rowElems=tablelelem.find('tr');
    函数检查(){
    var isEqual=真;
    $.each(行元素、函数(索引){
    $.each($(this).find('td input')、函数(索引){
    如果(索引==0){
    col1Val=$(this.val();
    }否则{
    if(col1Val!=$(this.val()){
    isEqual=假;
    返回false;
    }
    }
    });
    });
    如果(等质量){
    $(“#结果”).text('Is equal');
    }否则{
    $(“#结果”).text('Is not equal');
    }
    }
    $('#check')。在('click',function()上{
    检查();
    });
    
    
    
    检查
    共享您尝试过的代码..?是吗$('tr td:first child')。查找('td:contains(X)')这是如何不正确返回的每一列中的每一行的文本应该相等,还是仅第一行的文本相等?如果您共享表的html行,这会有所帮助。在最好的情况下,我需要检查每一行,但如果一行恰好相等,我需要停止检查。