Ответ 1
Что такое тег html, который на самом деле ничего не делает?
Теги <span>
и <div>
не обозначают конкретного значения и предназначены только для разметки.
или мне нужно обернуть его действительным тегом html и принудительно сбросить все стили, потому что css каскады?
Сброс всех стилей настоятельно требует загрузки CSS. Если вы чувствуете, что вам нужно это сделать, вам, вероятно, нужно тщательно подумать о том, что вы делаете. Вы должны работать с каскадными стилями, а не против них.
или его можно создать собственный тег html?
Никогда, никогда не делай этого. В то время как современные браузеры не сломаются (они достаточно разрешительны), HTML стандартизован, чтобы не допустить, чтобы каждый изобретал свои собственные теги.
если есть вероятность, что я могу добавить что-то в стандартную схему html?
Ну, технически, вы можете. Но это просто не стоит хлопот.
Кроме того, ссылаясь на w3.org:
Не делай этого! Документы должны иметь значение, а также правильный синтаксис. SGML и XML определяют только синтаксис. HTML и XHTML определяют значение. Если вы добавите элементы, которые не определены стандартом, вы сами знаете, что они означают. И через 20 или 50 лет, даже вы можете не знать об этом больше...
Как это можно сделать тогда?
IMO, вся проблема здесь в том, что ваш стиль CSS слишком широк. Вы должны перенести форматирование в .class
когда это возможно. Это дает вам более тонкий контроль над тем, где вы применяете каждый .class
и допускает большее повторное использование кода. Вы полностью обойдете всю каскадную проблему и сможете обернуть разделы в тегах <span>
.
ПРИМЕЧАНИЕ. Остальная часть ответа на самом деле не соответствовала требованиям, но я предпочел бы сохранить ее вместо ее удаления, если кто-то найдет ее полезной
Вы можете пометить теги без использования .class
с помощью специального data-*
:
<div data-yank='field1'>Hello World!</div>
<p data-yank='field2'>Hi world</p>
Селектор attributeEquals
позволяет выбрать соответствующий элемент:
$( "input[data-yank='field2']" ).text()