Является ли передача значений в javascript / JQuery через атрибут id в тегах обычной практикой? Это безопасно? - PullRequest
1 голос
/ 15 сентября 2010

Я часто этим занимаюсь, для определенных свойств в целях анимации, и особенно когда я генерирую что-то, используя значения базы данных, полученные через PHP. Есть ли причина этого не делать.

Пример кода, чтобы устранить неоднозначность.

Это будет JQuery:

$('.class').each(function(){
    var my_new_width = $(this).attr('id');
            $(this).stop(false, true).animate({width: my_new_width}, 100);
}); 

HTML будет:

<img id='100' src='path'/>

Очевидно, что этот код не предлагает никаких функций и предназначен для использования с .hover() или чем-то еще. Просто хотел прояснить двусмысленность вопроса.

Ответы [ 4 ]

2 голосов
/ 15 сентября 2010

Согласно W3C идентификаторы должны начинаться с буквы , не то чтобы я ожидал, что это взорвется, если вы этого не сделаете.В HTML5 у вас будет префикс data- для использования при попытке встраивания данных.

См. Этот вопрос SO для получения дополнительной информации и обсуждения: Пользовательские атрибуты - да или нет?

Лично я предпочитаю использовать атрибут rel ... по некоторым причинам он мне кажется правильным ... даже если он неправильный и не соответствует w3c.

1 голос
/ 15 сентября 2010

Использование атрибутов id в качестве заполнителя для информации является обычной практикой и безопасным, если вы обращаете внимание на некоторые рекомендации:

  • Идентификаторы должны быть уникальными
  • Идентификаторы не могут начинаться с цифры

Более спорный является использование пользовательского атрибута для заполнителя. Используя jQuery, очень легко назначить и получить значение из атрибута. Это облегчит чтение и обслуживание вашего кода, однако нарушит проверку HTML.

1 голос
/ 15 сентября 2010

Это кажется мне очень нелогичным, в основном потому, что кажется маловероятным, что вы могли бы гарантировать уникальность, но также и потому, что это просто не то, чем должен быть идентификатор - это может смутить кого-то, кто читает ваш код. *

Возможно, если вы опубликуете более полный пример того, как вы его используете, людям будет проще предложить лучший подход.

1 голос
/ 15 сентября 2010

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

Вот документы jQuery по селектору Id. .По сути, синтаксис $("#elementId").Поскольку селектор является просто строковым литералом, вы можете ввести идентификатор элемента следующим образом: $("#" + elementId), где elementId в этом случае является переменной.

Единственная причина, по которой это не нужно делать - это когда вы повторяете один и тот же jQuery снова и снова для множества элементов, где единственное различие между сценариями - это переданный Id.В этом случае вам следует использовать селектор классов:

Когда вы действительно ощутите всю мощь jQuery, вы начнете выбирать классы, используя синтаксис селектора: $ (". ClassName").Это возвращает «обернутый набор» элементов, по существу, массив соответствующих элементов.

Позволяет привязать поведение к нескольким элементам за один вызов.Именно эта функция значительно сокращает количество строк сценария на большинстве моих страниц.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...