У меня есть скрытый элемент <section />
, состоящий из элементов div, содержащих содержимое, которое будет помещено в диалоговое окно пользовательского интерфейса jQuery. В document.ready я хочу перебрать эти div, взять идентификатор каждого соответствующего div, заменить тире пробелами, использовать каждое слово с заглавной буквы и сохранить это в переменной title. Затем я собираюсь использовать это в литерале объекта, который помещается в мой массив dialogs[]
. Звучит просто, правда?
Урезанная версия HTML:
<section id="dialog-content" class="hidden">
<div id="some-dialog">
// awesome dialog content here
</div>
<div id="another-dialog">
// awesome dialog content here
</div>
<div id="modal-dialog">
// awesome dialog content here
</div>
</section>
Урезанная версия JavaScript:
var dialogs = [],
$container = $("#dialog-content");
$content = $container.find("> div");
$content.each(function (i)
{
var $this = $(this),
id = $this.attr("id"),
title = id.replace(/\-/g, " ");
console.log(title);
dialogs[dialogs.length] =
{
trigger: $("#" + id + "-trigger"),
title: title,
content: $this.html()
};
});
Кстати, я знаю, что могу использовать $.data()
и добавлять настраиваемые свойства в свои элементы div, но я действительно хотел как можно меньше разметки, и мне любопытна эта конкретная возможность. Так что это не столько мой пример, сколько вопрос.
Повторюсь, вопрос таков:
Как сделать каждое слово в переменной с заглавной буквы с помощью JavaScript, как это делает text-transform: capitalize;
в CSS?