【问题标题】:What is the semantically correct way to add indexes on elements? [closed]在元素上添加索引的语义正确方法是什么? [关闭]
【发布时间】:2014-09-26 21:55:04
【问题描述】:

假设页面上有一组元素,它们需要在 JavaScript 中动态访问。将此数据存储在对象上的语义正确方法是什么?是类还是数据属性?

<li class="question question1"></li>
<li class="question question2"></li>
<li class="question question3"></li>

并像这样访问元素:

$('.question' + index)

<li class="question" data-question-index="1"></li>
<li class="question" data-question-index="2"></li>
<li class="question" data-question-index="3"></li>

并像这样访问元素:

$('[data-question-index=' + index + ']')

【问题讨论】:

  • 使用类名会快得多(我的意思是之后访问它们)。但是添加索引的目的是什么?
  • 定义“语义正确”。这样的口号缺乏明确的含义(语义),要求语义正确意味着征求意见和辩论。

标签: javascript html dom semantic-markup


【解决方案1】:

一根绳子有多长?

  1. 它们已经有索引(例如,$(".question").eq(1) 是第二个索引;如果ul 中的所有lis 都具有该类,$(".question").eq(1).index() 将返回1)。

  2. 使用 data-* 属性非常适合您的用例;如果您添加/删除,您当然必须重新排序。

  3. 使用class 非常适合您的用例(可能有点不寻常);如果您添加/删除,您当然必须重新排序。

  4. 使用id 非常适合您的用例(如果这很重要的话,查找起来真的很快);如果您添加/删除,您当然必须重新排序。

【讨论】:

    【解决方案2】:

    html

    <li class="question"></li>
    <li class="question"></li>
    <li class="question"></li>
    

    那么js看起来像

    $('.question').get(index)
    

    Get Jquery Documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-02-11
      • 2016-11-09
      • 2013-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多