我在PHP中动态创建两个表,我希望能够轻松地比较两个表中的行。我希望能够在任一表中突出显示一行,并在另一个表中突出显示相应的行(按id)。
我在这里找到了许多类似情况的引用,但它们似乎都悬停在第1行上,将突出显示表2中的第1行。我希望突出显示按行ID(或类,不确定哪个)更合适。)
在下面的示例中,如果我将鼠标悬停在表1中的行ID 123上,表2中的行ID 123也会突出显示。反之,突出显示表2中的行ID 123将突出显示表1中的行ID 123。
这里的诀窍是这些行可能是任何顺序,所以计算或做第n个东西不会在这里工作。
<table id="t1">
<tr id="123"><td>......</td></tr>
<tr id="456"><td>......</td></tr>
<tr id="789"><td>......</td></tr>
<tr id="0AB"><td>......</td></tr>
<tr id="CDE"><td>......</td></tr>
</table>
<p>Table 2</p>
<table id="t2">
<tr id="CDE"><td>......</td></tr>
<tr id="123"><td>......</td></tr>
<tr id="0AB"><td>......</td></tr>
<tr id="456"><td>......</td></tr>
<tr id="789"><td>......</td></tr>
</table>
我是Javascript和jQuery的废话。在这一点上完全失去了。在这一点上,试图破解其他解决方案的工作已经超出了我的范围。
答案 0 :(得分:0)
对于初学者来说,ID应该是唯一的 - 所以你在这些上运气不合适。用类或数据属性替换它们,例如
<table>
<tr data-set="123"><td>...</td></tr>
<tr data-set="abc"><td>...</td></tr>
<tr data-set="xyz"><td>...</td></tr>
<tr data-set="987"><td>...</td></tr>
</table>
<table>
<tr data-set="123"><td>...</td></tr>
<tr data-set="abc"><td>...</td></tr>
<tr data-set="xyz"><td>...</td></tr>
<tr data-set="987"><td>...</td></tr>
</table>
然后这样,你基本上得到你正在悬停的元素的数据属性,并搜索具有相同数据属性的其他元素。
https://jsfiddle.net/yqm0z5up/1/
请原谅代码的草率性质,但应足以让您在正确的位置找到它。
答案 1 :(得分:0)
Id
不能在单个HTML文档中重复。因此,请修改您的HTML以使用class
代替id
。然后你可以在下面的代码中找到你的逻辑:
$(document).ready(function() {
$("table tr").hover(function() {
$("tr").removeClass("highlight");
$("." + $(this).attr("class")).addClass("highlight");
},
function() {
$("." + ($(this).attr("class").split(' '))[0]).removeClass("highlight");
});
});
.highlight {
background: gray;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<table id="t1">
<tr class="123">
<td>......</td>
</tr>
<tr class="456">
<td>......</td>
</tr>
<tr class="789">
<td>......</td>
</tr>
<tr class="0AB">
<td>......</td>
</tr>
<tr class="CDE">
<td>......</td>
</tr>
</table>
<p>Table 2</p>
<table id="t2">
<tr class="CDE">
<td>......</td>
</tr>
<tr class="123">
<td>......</td>
</tr>
<tr class="0AB">
<td>......</td>
</tr>
<tr class="456">
<td>......</td>
</tr>
<tr class="789">
<td>......</td>
</tr>
</table>