Подтвердить что ты не робот

Пользовательские атрибуты JQuery

Я думаю об использовании пользовательских атрибутов в JQuery, чтобы избежать использования атрибутов класса или идентификатора, чтобы не мешать конструкторам html.

Принимая во внимание эту идею, html должен быть таким, как:

<ul Jquery="CommonUl">
    <li Jquery="CommonLi"></li>     
    <li Jquery="CommonLi"></li>
    <li Jquery="CommonLi"></li>
    <li Jquery="CommonLi"></li>
    <li Jquery="CommonLi"></li>
</ul>
  • Считаете ли вы, что это хороший подход?

  • Каково ваше мнение о валидации W3C этих пользовательских атрибутов?

  • Знаете ли вы какой-либо способ программирования с помощью Jquery, не мешая работе дизайнеров html?

  • Что касается производительности, я полагаю, что с атрибутами класса или идентификаторами селектора jquery быстрее, чем использование настраиваемого атрибута и функции фильтрации, такие как "содержит и т.д.". Правильно ли это?

4b9b3361

Ответ 1

Вы можете сделать это, используя data- атрибуты, хотя (часть спецификации HTML5), например:

<li data-something="CommonLi"></li> 

jQuery даже имеет встроенную поддержку для них в версии 1.4.3+, например:

$("li").data("something") //"CommonLi"

По другим вопросам:

  • Они подтвердят, если он HTML5, но ничего не сломает в HTML4
  • Это не должно мешать дизайнеру, но это будет зависеть от того, какой дизайнер
  • Если вы извлекаете элемент из элемента, производительность такая же, как и любой другой атрибут

Ответ 2

если вы планируете иметь несколько атрибутов, я предлагаю установить уникальный атрибут имен, например.

<li data-yourapp>...</li>

и использовать этот атрибут как хэш-таблицу

$("li").data("yourapp", { 
   points  : 2000,
   life    : 1,
   weapons : {
      firegun  : 0,
      missiles : 12
   }
});

таким образом вы уменьшите доступ к элементу, и вы будете получать все пользовательские данные один раз

Ответ 3

Я лично рекомендую вам использовать встроенный метод jquery для сохранения данных с каждым элементом. Ниже приведен фрагмент кода для сохранения данных:

$("ul").data("CommonUl");
$("li").data("CommonLi");