我正在使用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>
我无法弄清楚如何让这些内容更新所选td
中的所有tr
以获得课程selectedtd
。
答案 0 :(得分:1)
您只需一个脚本即可轻松完成此操作:
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>
{{1}}
答案 1 :(得分:1)
不是选择最近的表格,而是选择最接近的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>
答案 2 :(得分:1)
$('td').click(function(el){
// Removes the already selected
$('.selecetedtd').removeClass('selecetedtd');
// Selects current row
$(this).parents('tr')
.toggleClass('selecetedtd');
});
您可以看到正在使用的示例here。
答案 3 :(得分:1)
下面。
$("#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>
答案 4 :(得分:0)
如果我理解你的话,你可以大量简化:
$('#UpdateTable').on('click', 'td', function() {
$(this).parent().toggleClass('selected').children().toggleClass('selectedtd');
});
答案 5 :(得分:0)
使用each()
功能
$(".use-address").click(function() {
var $row = $(this).closest("tr"); // Find the row
$row.find("td").each(function()
{
$(this).text("fffff");
$(this).addClass("fffff");
}
);
});
这是工作小提琴 here
答案 6 :(得分:-1)
根据需要tr
已被选中,只需使用.find()
选择所选td
中的tr
。
尝试以下代码。
<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>