jQuery (анти-) шаблон: построение селекторов со строковыми манипуляциями
Слишком часто я обнаруживаю, что строю селекторы с помощью строк (split, search, replace, concat, +, join).
Хорошо или плохо?
2 ответа
Что в этом плохого? Каковы альтернативы - просто жестко закодировать их как одну строку? Но вы можете использовать соглашения на вашем сайте для организации макета. Если вы просто определяете компоненты селектора в одном месте и используете его для создания селектора, звучит так, что это будет меньше хлопот, чем просмотр всего кода и поиск-замена везде, где он появляется.
Я бы сказал, что хорошо, если у вас есть строки, организованные иначе (определенные в одном месте, используемые в нескольких местах).
Это несколько не связано с вашим вопросом, но:
Я бы порекомендовал быть осторожным с селекторами на основе потомков или дочерних элементов (например, "div.product> span.price"). Часто части пользовательского интерфейса реорганизуются, перемещаются или оборачиваются чем-то другим. Когда это происходит, селекторы на основе потомков ломаются.
Следует также помнить, что селекторы на основе атрибутов (например, 'input[value="Login"]') часто бывают хрупкими при работе с локализованным контентом (если значения атрибутов локализованы).