2016-12-29 3 views
0

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

/* CSS */

#unique { 
    background: yellow; 
} 
.general { 
    border: 1px solid blue; 
} 

/* HTML */

<div id="container"> 
    <div id="unique" class="general">hello</div> 
</div> 

/* JS/JQuery */

$(function() { 
    $(".general").clone().appendTo("#container").removeAttr("id"); 
}); 

EDIT: Связанный дубликат предоставляет плагин jQuery. Он использует метод .getComputedStyle, который работает, но ресурсоемкий, так как он загружает все из вычисленных стилей. Я надеялся найти способ идентифицировать только пару стилей конечного пользователя, которые они могли применить к идентификатору.

+0

Возможный дубликат [Может ли jQuery получить все стили CSS, связанные с элементом?] (Http://stackoverflow.com/questions/754607/can-jquery-get-all-css-styles-associated-with-an- element) –

+0

Разве вы не можете просто создать класс с этими стилями и вставить его? – Rob

+0

Почему бы просто не удалить идентификатор, когда вы клонируете его, а не отбираете его? – epascarello

ответ

0

id атрибут должен быть уникальным, но классов нет. Поэтому привяжите все правила CSS к классу, поэтому, когда вы удалите идентификатор, стили останутся. Плохая практика использования селекторов id в CSS.

Затем вы можете добавить класс только для этого конкретного правила, что вам нужно быть уникальным и удалить класс из клонированных объектов с помощью функции $(...).removeClass().

+0

Приложение _is_ в стиле с классом ... Этот ответ не помогает в отношении вопроса, который гласит: «Обычно будет только класс. В случае, если конечный пользователь решит использовать идентификатор и стиль ...» Идея состоит в том, чтобы гарантировать, что приложение работает должным образом, даже если конечный пользователь не соблюдает лучшие практики. –

+0

Единственный другой способ, который я вижу, - использовать функцию getComputedStyle в соответствии с вашим редактированием. Извините за невозможность помочь! –

+0

Нет проблем и спасибо. –

Смежные вопросы