Когда вы устанавливаете display: none
, элемент не может произвести рендеринг; страница будет отображаться так, как если бы элемент отсутствовал. Поэтому вам нужно будет использовать какой-то другой способ скрытия содержимого, чтобы элемент все-таки вызывал что-то, например, разрыв строки.
Самый простой подход состоит в том, чтобы очистить содержимое элемента и удалить его по умолчанию верхнее и нижнее поле, чтобы он стал пустым блоком, который не занимает места, за исключением того, что он подразумевает разрыв строки. Чтобы сделать операцию переключаемой, вам необходимо сохранить реальный контент. Пример:
var array = document.getElementsByTagName('blockquote');
for(var i = 0; i < array.length; i++) {
array[i].savedContent = array[i].innerHTML;
array[i].innerHTML = '';
array[i].style.margin = 0;
}
В коде, который восстанавливает комментарий содержимое, вы могли бы сделать обратную операцию, восстанавливая innerHTML
от savedContent
и установки верхнего и нижнего полей. Для согласованности было бы лучше установить эти поля статически на некоторые известные значения, чтобы вы могли затем восстановить те же самые значения.
Я бы ожидал, что имя свойства, например savedContent
, будет достаточно безопасным (т. Е. Не столкнуться с любым существующим свойством узлов элемента), но, чтобы быть в действительно безопасной стороне, было бы лучше использовать такое имя, как data-content
вместо этого, естественно, с обозначением в виде скобок вместо точечной нотации, например array[i]['data-content']
.
Вы можете вставить html? – 2013-05-02 05:47:57
пример: textt
больше текста dfgd df gdf. –текстыdf
Почему вы не дали им имя класса и спрятали их? – 2013-05-02 05:50:55