或者,提供尽可能少的 ID 并由其父级访问子 div。为此,我必须这样做:$(parentDiv).attr("child", childDiv) 或 $(parentDiv).data("child", childDiv)"
并使用 - $(parentDiv).attr("child") 或 $(parentDiv).data("child") 获取子元素
这不是您访问子元素或后代元素的方式。您使用children
,find
等。
我的问题是,哪种方式更有效(更快,这被认为是更好的设计,等等..)。
这些可能是单独的问题。您不太可能比通过 更有效地访问元素,但是如果您的结构是合理的id
,那么在效率上与在结构上找到它之间的差异可能不会很大。您可以从中导航的几个锚点就足够了。
如果没有有关您的结构的更多信息,很难提供一个可靠的示例,但让我们考虑一个相当经典的表格案例,您希望在其中响应对单元格的点击:
<table>
<tbody id="foo">
<tr data-info="first row">
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
<tr data-info="second row">
<td>One</td>
<td>Two</td>
<td>Three</td>
</tr>
</tbody>
</table>
希望根据对其他单元格的点击来更新单元格是很常见的。您可以通过使用表的 ID、事件委托和结构遍历方法来做到这一点。
$("#foo").on('click', 'td', function() {
// `this` is the cell that was clicked. If I want row-level data, I'd use:
alert("This row's info is " + $(this).closest('tr').data('info'));
// Or maybe I want the last cell in the row
alert("Last cell's text: " + $(this).siblings().last().text());
});