<table>
<tr id="tr1">
<td id="td1"> test1 </td>
<td id="td2"> test2 </td>
<td id="td3"> test1 </td>
<td id="td4"> test3 </td>
</tr>
</table>这里有一张桌子上有一张tr和4td。现在,我的问题是,我如何将td.text()和另一张进行比较?
例如,:一个循环,它接受第一个td的文本,然后将它与其他td的文本进行比较。如果是相同的,那么给td一个类。
这里: td id="td1"应该得到一个类
但是:当我在3e td时,3e td应该有一个类。
发布于 2015-05-29 15:17:17
此代码应该适用于您:
var tds;
$('tr').each(function(i, item){
tds = $(this).find('td');
tds.each(function(j, elem1){
tds.each(function(k, elem2){
if($(elem1)[0] != $(elem2)[0] && $(elem1).text() == $(elem2).text()){
$(elem1).addClass('cl');
}
});
});
});发布于 2015-05-29 15:29:03
您可以使用以下代码:
function setClasses(word) {
var tds = $("tr td");
for(var i = 0; i < tds.length; i++) {
if(tds.eq(i).text() === word) {
tds.eq(i).addClass('red');
}
}
}
setClasses("test1");发布于 2015-05-29 15:39:53
jQuery选择器将是你在这里的朋友。:)
var $container = $("#tr")
$container.children().each(function() {
if (!($(this).hasClass("td")) {
var sTextVal = $(this).text();
var $currTextGroup = $container.children(":contains('" + sTextVal + "')");
if ($currTextGroup.length > 1) {
$currTextGroup.addClass("td");
}
}
});我将解释逻辑,然后触及一个需要注意的问题。。。
基本上,这个代码:
<tr>的所有子代,一次循环一次。<tr>的所有子元素。<tr>中有多个子程序包含该文本,则所有这些子节点都将被赋予"td“类。该解决方案可能遇到的一个潜在问题是,如果当前元素中的文本作为的的一部分出现,那么它的一个兄弟节点中的文本就会出现。例如,如果兄弟姐妹中的文本是" the ",并且它有一些文本值为"the_n“、"_the_re”和"_the end“的兄弟姐妹,则它们将由:contains找到。
但是,如果您的文本值有足够的“模式”(就像在您的示例中那样),那么这不应该是一个问题。如果这是一个问题,有一个更复杂的方式来做“普通文本”选择,但我不会去费心,除非它是必要的。
https://stackoverflow.com/questions/30532862
复制相似问题