首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何使用td.text()比较tr中的几种jQuery ()

如何使用td.text()比较tr中的几种jQuery ()
EN

Stack Overflow用户
提问于 2015-05-29 14:59:34
回答 4查看 3.7K关注 0票数 3
代码语言:javascript
复制
<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应该有一个类。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2015-05-29 15:17:17

此代码应该适用于您:

代码语言:javascript
复制
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');
            }
        });
    });
});

小提琴:https://jsfiddle.net/lmgonzalves/cqa6m6va/1/

票数 3
EN

Stack Overflow用户

发布于 2015-05-29 15:29:03

您可以使用以下代码:

代码语言:javascript
复制
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");
票数 0
EN

Stack Overflow用户

发布于 2015-05-29 15:39:53

jQuery选择器将是你在这里的朋友。:)

代码语言:javascript
复制
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");
        }
    }
});

我将解释逻辑,然后触及一个需要注意的问题。。。

基本上,这个代码:

  1. 收集<tr>的所有子代,一次循环一次。
  2. 如果当前的子元素还没有一个"td“类(如果它已经有一个"td”类,那么这个文本已经检查了副本),它将从元素中检索文本,并搜索包含相同文本值的<tr>的所有子元素。
  3. 如果<tr>中有多个子程序包含该文本,则所有这些子节点都将被赋予"td“类。

该解决方案可能遇到的一个潜在问题是,如果当前元素中的文本作为的一部分出现,那么它的一个兄弟节点中的文本就会出现。例如,如果兄弟姐妹中的文本是" the ",并且它有一些文本值为"the_n“、"_the_re”和"_the end“的兄弟姐妹,则它们将由:contains找到。

但是,如果您的文本值有足够的“模式”(就像在您的示例中那样),那么这不应该是一个问题。如果这是一个问题,有一个更复杂的方式来做“普通文本”选择,但我不会去费心,除非它是必要的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30532862

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档