Подтвердить что ты не робот

Содержимое HTML5, доступное с помощью jQuery

У меня есть некоторые элементы, которые должны иметь текст внутри редактируемого, для этого я использую атрибут HTML 5 contentEditable. Я не могу использовать jQuery для этого, используя несколько селекторов. Я хочу, чтобы каждый тег внутри контейнера div редактировался. Вот пример того, как он будет выглядеть с jQuery:

$("#container <all tags here>").contentEditable = "true";

Я не знаю, как заставить его выбирать все теги, но вы понимаете.

Таким образом, весь диапазон, div, таблицы, жирный шрифт и т.д. должен быть доступен для редактирования индивидуально

4b9b3361

Ответ 1

$('#container *').attr('contenteditable','true');

* означает "все типы элементов" и аналогичен a,div,span,ul,etc...

Как и большинство других функций jQuery, attr применяет ту же операцию к каждому элементу, захваченному селектором.

Ответ 2

$("#container *").attr("contentEditable", true)

Просто догадаться. Вдали от рабочей станции.

Ответ 3

У меня создается впечатление, что вы неправильно понимаете проблему в двух местах:

  • jQuery создает объекты "запроса", которые предоставляют сокращение для управления наборами элементов DOM. Ваш пример кода устанавливает contentEditable в запросе, а не то, что он соответствует. Вы хотите, чтобы сокращение jQuery для "установить атрибут для всех совпадающих элементов", которое $('whatever').attr('contentEditable','true');

  • Я не уверен, что вы правильно понимаете contentEditable. Вы должны установить его в контейнере верхнего уровня для каждого редактируемого региона, и его эффекты распространяются на все внутри. По моему опыту, если настройка contentEditable на #container или что-то вроде #container div.post действительно недостаточно, то у вас есть большие проблемы.

Ответ 4

Если я правильно помню, установка значения contentEditable для родителя также приведет к тому, что все его дети станут редактируемыми.

Таким образом:

$('#container').attr("contentEditable", "true");

Должен работать.

Ответ 5

По какой-то причине в IE10 только это работало:

$('#container').get(0).contentEditable = "true";

Почему attr не работал, я не знаю.