Jquery 检查每个tr中第一个td中的所有值是否包含相同的文本
我有一个问题,我有一个动态创建的表(3x3、4x4或5x5),我试图查看每列中的文本是否从第一列开始相等 到目前为止我已经试过了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>
$('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
// 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行,这会有所帮助。在最好的情况下,我需要检查每一行,但如果一行恰好相等,我需要停止检查。