在元素上添加索引的语义正确方法是什么?

时间:2014-09-26 21:55:05

标签: javascript html html5 dom semantic-markup

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

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

并访问元素,如:

$('.question' + index)

OR

<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 + ']')

2 个答案:

答案 0 :(得分:1)

一根绳子有多长?

  1. 他们已经有索引(例如$(".question").eq(1)是第二个;如果$(".question").eq(1).index()中的所有1li将返回ul 1}}有类)。

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

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

  4. 使用id完全正常,如果它适用于您的用例(非常快查找,如果这很重要);如果你添加/删除,你当然必须重新排序。

答案 1 :(得分:-1)

HTML

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

然后js看起来像

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

Get Jquery Documentation