我正在编写一个在给定 DIV 容器中构建复杂 HTML 结构的库(使用 JQuery)。
这是它如何工作的示例:
HTML
<div id="a"></div>
<div id="b"></div>
图书馆 JAVASCRIPT
function complexStructure(container, opts) {
this._container = $(container);
// code handling options
// ...
}
complexStructure.prototype = {
show: function () {
this._buildStructure();
},
_buildStructure: function () {
// building html nodes here
// ...
for ( x=0; ... ) {
for ( y=0; ... ) {
// ...
obj.attr("id", this._idOfElement(x, y));
// ...
}
}
// ...
this._container.empty().append(structure);
},
_idOfElement: function (x ,y) {
return "element_x_" + x + "_y_" + y;
},
updateElementState: function (x, y, state) {
var element = this._container.find("#" + this._idOfElement(x, y));
// ...
// update element
// ...
}
};
库用户 JAVASCRIPT
var a = new complexStructure(document.getElementById("a"), {... opts ...});
var b = new complexStructure(document.getElementById("b"), {... opts ...});
a.show();
b.show();
在构建节点时,我为它们分配了 ID,以便以后可以检索它们。为了检索它们,我从它们的祖先 DIV 容器开始查找它们的 ID,因为可能有多个具有相同 ID 的节点(在 DIV a和 DIV b中)。
我想知道在这种情况下是否可以使用重复的 ID,或者我是否应该更喜欢使用 CSS 类或自定义属性。在这种情况下,最佳实践是什么?您对整体架构有何建议?
当然实际的代码比这更复杂。
谢谢你的时间