![](/img/trans.png)
[英]How to add class names to tr and td in multiple tables with conditions?
[英]How to add a class to each TD in a TR when the TR gets selected
我正在使用HTML,PHP和JS创建报告网站。 我有几个要显示的表。 在每个表中都有多行tr
和许多列td
。 我进行了设置,以便当我单击tr
之一时,它会获得selected
的类。 我也进行了设置,以便单击的td
获得selectedtd
的类。 我要的是让所有的td
在tr
是被选定为具有类selectedtd
,然后有一个类中删除当tr
是不选。 到目前为止,这是我得到的:
单击tr
任意位置时,此脚本会将tr
更新为具有该类或将其删除。
<script type='text/javascript'>//<![CDATA[
$("#UpdateTable tr").click(function ()
{
$(this).toggleClass('selected').siblings().removeClass('selected');
});
//]]>
</script>
单击此脚本后,该脚本会将selectedtd
类添加或删除到单个td
。
<script type='text/javascript'>//<![CDATA[
$("#UpdateTable td").click(function ()
{
$(this).closest('table').find('td').not(this).removeClass('selectedtd');
$(this).toggleClass('selectedtd')
});
//]]>
</script>
我无法弄清楚如何获取这些内容以更新所选tr
中的所有td
以使类为selectedtd
。
除了选择最接近的表之外,还可以选择最接近的tr
并执行以下操作:
$(document).ready(function () { $('td').click(function () { // first remove all classes $('td, tr').removeClass('selectedtd selected active'); // $(this) shows to currently clicked TD $(this).closest('tr').addClass('active'); $(this).closest('tr').find('td').addClass('selectedtd'); $(this).addClass('selected'); }); })
td { color: #999; padding: 5px 10px; cursor: pointer; } td:hover { background-color: #ddd; } tr { border-bottom: 1px solid transparent; } .selectedtd { color: #000; } .selected { color: #0d0; } .active { border-bottom-color: #ddd; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> <tr> <td>1</td> <td>2</td> <td>3</td> </tr> </table>
您只需一个脚本即可轻松完成此操作:
$("#UpdateTable tr").click(function() { $(this).toggleClass('selected').siblings().removeClass('selected').children().removeClass('selectedtd'); $(this).children().toggleClass('selectedtd'); });
table { border-left: 1px solid grey; border-top: 1px solid grey; } td { padding: 5px; border-right: 1px solid grey; border-bottom: 1px solid grey; } tr.selected { color: white; } td.selectedtd { background-color: green; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id="UpdateTable"> <tr> <td>1.1</td> <td>1.2</td> <td>1.3</td> </tr> <tr> <td>2.1</td> <td>2.2</td> <td>2.3</td> </tr> <tr> <td>3.1</td> <td>3.2</td> <td>3.3</td> </tr> </table>
$('td').click(function(el){
// Removes the already selected
$('.selecetedtd').removeClass('selecetedtd');
// Selects current row
$(this).parents('tr')
.toggleClass('selecetedtd');
});
您可以在此处查看正在使用的示例。
这里。
$("#UpdateTable tr").click(function () { $(this).find('td').each(function(){ $(this).addClass('selectedtd'); }); $(this).siblings('tr').each(function(){ $(this).find('td').removeClass('selectedtd'); }); });
.selectedtd{ color: blue; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <table id="UpdateTable"> <tr> <td>TD 1</td> <td>TD 2</td> <td>TD 3</td> </tr> <tr> <td>TD 4</td> <td>TD 5</td> <td>TD 6</td> </tr> <tr> <td>TD 7</td> <td>TD 8</td> <td>TD 9</td> </tr> </div>
由于已经选择了必需的tr
,只需使用.find()
在选定的tr
选择td
。
尝试下面的代码。
<script type='text/javascript'>
//< ![CDATA[
$(function() {
$("#UpdateTable tr").click(function() {
$(this).toggleClass('selected').find('td').toggleClass('selectedtd');
});
});
//]]>
</script>
完整的例子:
td.selectedtd { background-color: red; }
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <script type='text/javascript'> //< ![CDATA[ $(function() { $("#UpdateTable tr").click(function() { $(this).toggleClass('selected').find('td').toggleClass('selectedtd'); }); }); //]]> </script> <table id="UpdateTable"> <tr> <td>Some text</td> <td>Some text</td> <td>Some text</td> </tr> <tr> <td>Some text</td> <td>Some text</td> <td>Some text</td> </tr> <tr> <td>Some text</td> <td>Some text</td> <td>Some text</td> </tr> <tr> <td>Some text</td> <td>Some text</td> <td>Some text</td> </tr> </table>
如果我理解正确,则可以大大简化此操作:
$('#UpdateTable').on('click', 'td', function() {
$(this).parent().toggleClass('selected').children().toggleClass('selectedtd');
});
使用each()
函数
$(".use-address").click(function() {
var $row = $(this).closest("tr"); // Find the row
$row.find("td").each(function()
{
$(this).text("fffff");
$(this).addClass("fffff");
}
);
});
这里是工作提琴这里
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.