我有一个隐藏的<section />
,它由包含要嵌入到jQuery UI对话框中的内容的div组成。在document.ready上,我想循环这些div,取每个div的id,用空格替换破折号,将每个单词大写,并将其存储在标题变量中。然后,我将使用它放入我的dialogs[]
数组中。听起来很简单,对吧?是否有与CSS文本转换相当的JS:capitalize?
剥离下来的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?
只是好奇,为什么它与大写储存有关系?为什么不能仅仅在最终用户看到它时才使用它? – 2011-05-10 22:18:20
它没有,它可以很容易地通过CSS完成。我只是很好奇,如果在JavaScript中有现成的方法来做,或者如果你需要一个定制的解决方案,显然一个自定义的解决方案是做到这一点。就像我在文章中所说的那样,这不是真的关于我使用的例子,更是如此,因为我很好奇。 – 2011-05-10 22:23:36
我看,是的,实验室测试从伟大的开发者中分离好的开发者:) – 2011-05-10 22:42:42