Ответ 1
$('#container *').attr('contenteditable','true');
*
означает "все типы элементов" и аналогичен a,div,span,ul,etc...
Как и большинство других функций jQuery, attr применяет ту же операцию к каждому элементу, захваченному селектором.
У меня есть некоторые элементы, которые должны иметь текст внутри редактируемого, для этого я использую атрибут HTML 5 contentEditable. Я не могу использовать jQuery для этого, используя несколько селекторов. Я хочу, чтобы каждый тег внутри контейнера div редактировался. Вот пример того, как он будет выглядеть с jQuery:
$("#container <all tags here>").contentEditable = "true";
Я не знаю, как заставить его выбирать все теги, но вы понимаете.
Таким образом, весь диапазон, div, таблицы, жирный шрифт и т.д. должен быть доступен для редактирования индивидуально
$('#container *').attr('contenteditable','true');
*
означает "все типы элементов" и аналогичен a,div,span,ul,etc...
Как и большинство других функций jQuery, attr применяет ту же операцию к каждому элементу, захваченному селектором.
$("#container *").attr("contentEditable", true)
Просто догадаться. Вдали от рабочей станции.
У меня создается впечатление, что вы неправильно понимаете проблему в двух местах:
jQuery создает объекты "запроса", которые предоставляют сокращение для управления наборами элементов DOM. Ваш пример кода устанавливает contentEditable в запросе, а не то, что он соответствует. Вы хотите, чтобы сокращение jQuery для "установить атрибут для всех совпадающих элементов", которое $('whatever').attr('contentEditable','true');
Я не уверен, что вы правильно понимаете contentEditable. Вы должны установить его в контейнере верхнего уровня для каждого редактируемого региона, и его эффекты распространяются на все внутри. По моему опыту, если настройка contentEditable на #container
или что-то вроде #container div.post
действительно недостаточно, то у вас есть большие проблемы.
Если я правильно помню, установка значения contentEditable
для родителя также приведет к тому, что все его дети станут редактируемыми.
Таким образом:
$('#container').attr("contentEditable", "true");
Должен работать.
По какой-то причине в IE10 только это работало:
$('#container').get(0).contentEditable = "true";
Почему attr не работал, я не знаю.