【问题标题】:Is is bad practice to ID each (used) element in html? [closed]在 html 中标识每个(使用的)元素是不好的做法吗? [关闭]
【发布时间】:2014-06-13 02:44:23
【问题描述】:

我想知道使用 jquery 操作 html 页面中的某些元素的最佳做法是什么。就目前而言,我有一个面板,其中包含一个嵌入式表单,其中包括一个输入框、复选框、提交/重置/测试按钮。现在我为这些元素中的每一个都分配了一个 id,这样我就可以在每个元素被更改/选择时采取适当的行动。但是,我觉得通过 id 分配和管理每个元素,我的代码变得非常混乱和不可读。我知道浏览器通过 id 选择是有效的,但是简单地给面板/表单一个 ID,然后在面板/表单内调用不同的选择器会更好吗?对于选择我在下面分配了 ID 的一些元素有什么建议吗? (我正在修改的那些..等)。谢谢!

        <div class="row">
        <div class="col-lg-6">
            <div class="panel panel-default" id="sample_panel">
                <div class="panel-heading">
                    Heading
                </div>
                <div class="panel-body">
                    <form role="form" id="form1">
                        <div class="form-group">
                            <h4>Subheading</h4>
                            <div class="form-group input-group">
                                <span class="input-group-addon" id="input_addon">some_text</span>
                                <input type="text" id="input1" class="form-control" placeholder="Enter text">
                            </div>
                        </div>
                        <div class="form-group">
                            <div class="checkbox">
                                <label>
                                    <span class="help-block">
                                        <input type="checkbox" id="cb1" >some_text
                                    </span>
                                </label>
                            </div>
                        </div>
                        <button type="submit" class="btn">Submit</button>
                        <button type="reset" class="btn id="reset_btn">Reset</button>
                        <button type="button" class="btn" id="test_btn">Test</button>
                        <i id="some_image"></i>
                    </form>
                </div>
                <div class="panel-footer" id="footer"></div>
            </div>
        </div>
        <!-- /.col-lg-6 -->
    </div>
    <!-- /.row -->

【问题讨论】:

  • 这个问题更适合codereview.stackexchange.com,因为它询问的是最佳实践。
  • 长期使用容器 ID 和单个项目的类/属性可能会更好,除非它们是应用程序范围的。
  • 在 html 中重复模板通常更容易在父类中使用类和搜索
  • @Jay Blanchard,感谢您的提示.. 仍然是新发帖者,所以我很抱歉在“错误”的地方发帖。
  • ids 在全局范围内创建 javascript 变量,而这可能会导致错误

标签: javascript jquery html jquery-selectors


【解决方案1】:

请记住,ID 是唯一标识符,因此应该有更具体的名称。我只会在它们真正需要时使用它们,并且当一个类不是识别它们的更好方法时。

在类上堆砌,但要更谨慎地使用 ID。在编写我的第一个 MVC 应用程序时,我也遇到了这个问题。祝你好运!

别忘了 StackOverflow 上也有一个 code review 网站。

【讨论】:

    【解决方案2】:

    我为页面中包含页面子集的主要元素以及我希望直接访问的重要且独特的元素提供 ID。我不会为每个列表项、链接或 div 提供 id,因为它会使代码混乱,并且是潜在的维护噩梦。您不会选择页面的大多数元素,而且您经常会同时访问多个元素 - 类对此非常有用。

    因此,虽然您认为通过 id 访问元素非常快速高效是正确的,但选择器系统功能强大且有用,因为您可以通过多种方式选择元素。也可以利用其他选择方法,使用 jQuery 可以完成更多工作。

    【讨论】:

    • 没错。我不完全确定,但似乎您使用的 ID 越多,您在寻找一个时在选择器上投入的工作就越多。不过,这可能还不够重要。
    • 我认为文档中使用的 id 数量不会影响选择。
    • 我只是假设在加载的页面上搜索包含 100 个 ID 的列表会比搜索包含 15 个 ID 的列表要慢。
    • 我认为 id 就像一个索引 - 知道它可以让您直接访问。不涉及搜索。
    • 我对 jQuery 选择器内部工作原理的了解肯定不够深入,无法在这方面挑战您:) 感谢您的意见。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-18
    • 1970-01-01
    • 2017-05-08
    • 2021-07-09
    • 2015-01-22
    • 2020-07-26
    相关资源
    最近更新 更多