jQuery removeClass和addClass?

时间:2017-04-24 19:28:47

标签: javascript jquery html css

我想在表格td中添加{“1}}类”new“。我得到<div id="demo">的文字,所以“名字”。在jQuery代码中;如果文本是<div id="demo">关于td的类应该改变。但是这个jQuery代码不起作用。我该怎么办?

"abc"

2 个答案:

答案 0 :(得分:1)

id属性更改为class es:

&#13;
&#13;
function tryMe() {
  $('.old .demo').each(function () {
    if ( $(this).text() == 'abc' ) {
      $(this).parent().parent().removeClass('old').addClass('new');
    }
  });
}

tryMe();
&#13;
.old {
  color:blue;
}

.new {
  color:red;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table cellspacing="10">
                <tr>
                    <td class="old">
                        <h:dataTable value="" var="myvar" rows="1" first="0">
                            <h:column>1
                            <div class="demo" style="visibility: visible">abcdefgh</div>
                            </h:column>
                        </h:dataTable>
                    </td>
                    <td class="old">
                        <h:dataTable value="" var="myvar" rows="1" first="1">
                            <h:column>2
                            <div class="demo" style="visibility: visible">abcdefg</div>
                            </h:column>
                        </h:dataTable>
                    </td>
                    <td class="old">
                        <h:dataTable value="" var="myvar" rows="1" first="2">
                            <h:column>3
                            <div class="demo" style="visibility: visible">abcde</div>
                            </h:column>
                        </h:dataTable>
                    </td>
                    <td class="old">
                        <h:dataTable value="" var="myvar" rows="1" first="3">
                            <h:column>4
                            <div class="demo" style="visibility: visible">abc</div>
                            </h:column>
                        </h:dataTable>
                    </td>
                </tr>
            </table>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

多次使用相同的ID很糟糕,但这就是为什么您的代码没有按预期设置类的原因:

$(document).ready(function(){
    console.log($(this));

    var closestTD = $(this).closest("td");
    console.log(closestTD);
});

当您在文档中时,处理程序$(this)就是文档。 $(this).closest("td")选择器找不到您想要的元素。

您要做的是将这些div更改为具有相同的类名(例如:'demo')并使用.each循环它们:

$(document).ready(function(){
    $("div.demo").each(function( index ) {
        var demoDivText = $( this ).text();
        console.log(index + ": " + demoDivText);

        var closestTD = $(this).closest("td");
        console.log(closestTD);

        if(demoDivText === "abc"){
            closestTD.removeClass("old").addClass("new");
        }
    });
});