我想在表格td中添加{“1}}类”new“。我得到<div id="demo">
的文字,所以“名字”。在jQuery代码中;如果文本是<div id="demo">
关于td的类应该改变。但是这个jQuery代码不起作用。我该怎么办?
"abc"
答案 0 :(得分:1)
将id
属性更改为class
es:
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;
答案 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");
}
});
});