Это плохо, чтобы добавить класс CSS, который не существует? - PullRequest
1 голос
/ 24 января 2012

Я хочу добавить несколько классов в некоторые текстовые поля, чтобы я мог получить их значения с помощью jquery.Это похоже на стандартную практику при использовании jQuery и этот пост предлагает его в качестве ответа, но как это влияет на загрузку страницы?Не будет ли пытаться найти все эти классы?В прошлом мне предлагали попытаться минимизировать количество классов, используемых в элементах управления.

У меня есть около 12 элементов управления, к которым я хочу добавить уникальные классы, чтобы получить их значение.Я использую asp.net, поэтому я не могу использовать идентификатор.Я также не могу использовать ClientID, так как элементы управления находятся в таблице (но только один набор элементов управления будет отображаться одновременно).

например,

<asp:TextBox ID="txtValue1" runat="server" CssClass="value1" Text='value1' />
<asp:TextBox ID="txtValue2" runat="server" CssClass="value2" Text='value2' />
<asp:TextBox ID="txtValue3" runat="server" CssClass="value3" Text='value3' />
...

var value1 = $('.value1').val();
var value2 = $('.value2').val();
var value3 = $('.value3').val();

И ни один изимена классов будут существовать в css.

Спасибо

Редактировать:

Я знаю, что это работает, но мне было более любопытно, как это отразилось на страницепогрузка.Был ответ (кажется, что он сейчас удален), в котором говорилось что-то вроде html-анализатора, игнорирующего классы.Синтаксический анализатор CSS будет смотреть только на те классы, которые определены.Похоже, это будет полностью проигнорировано и не повлияет на загрузку страницы.Это правильно?

Ответы [ 4 ]

2 голосов
/ 24 января 2012

Можно использовать класс CSS, который не существует, но если они уникальны, вы хотите использовать id, а не class.

0 голосов
/ 24 января 2012

Вы говорите, что используете ASP.Net, поэтому вы не можете использовать параметр ID, но вы можете.В JQuery вы можете получить элементы управления, используя ниже

var value1 = $('[ID$=yourID]').val();

Для получения дополнительной информации о селекторах JQuery посмотрите: Селекторы JQuery и Заканчиваются атрибуты с помощью селектора

Вышеупомянутый селектор в основном находит id ENDING в "yourID", поэтому игнорирует весь дополнительный текст мастер-страниц в начале.Вы просто должны убедиться, что они уникальны.например, не иметь идентификаторы, такие как «HSBC» и «SBC», так как вышеупомянутый селектор на «SBC» найдет оба.

0 голосов
/ 24 января 2012

Какую версию asp.net вы используете? В asp.net 4.0 у вас есть возможность использовать незащищенные идентификаторы. Похоже, простейшим решением было бы установить ClientIDMode = "Static" для всех ваших текстовых полей и затем ссылаться по id. В противном случае, конечно, я создал классы, которые не существуют, чтобы ссылаться на вещи .... все время.

Редактировать: (в ответ на ваш комментарий о загрузке страницы эффекта).

Я думаю, что ваш вопрос о наличии дополнительных классов в div, которые в настоящее время не используются, не является плохим вопросом (по крайней мере, в теоретическом смысле), и я, честно говоря, не знаю точного ответа. Я верю, что любой эффект весьма незначителен. Если вы рассматриваете передовые методы написания HTML, вы обычно пишете и структурируете HTML с его классами, прежде чем писать CSS. Это значит, что во время написания CSS некоторые классы не будут использоваться. Действительно, после стилизации базовых тегов (body, h1, a и т. Д.) Вы можете обнаружить, что вам никогда не нужно создавать селекторы с этими классами для определенного дизайна. И все же для следующего дизайна вам могут понадобиться эти классы. Я почти уверен, что технология CSS была разработана с учетом таких сценариев, и я держу пари, что миллионы, если не миллиарды страниц в Интернете будут следовать именно этому сценарию, особенно если они используют что-то вроде Modernizr , который добавляет классы к элементу html страницы как способ предоставления вам классов, которые вы можете выбрать, учитывая возможные возможности текущего браузера. Возможно, вам никогда не понадобятся эти классы, но они есть, если они вам нужны.

0 голосов
/ 24 января 2012

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

Любые другие мысли ??

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