jQuery更改字体系列和字体大小

时间:2011-10-04 22:22:35

标签: jquery fonts

我正在尝试通过从列表中选择字体来更改textarea和容器中显示的文本的字体系列和字体大小,应修复字体大小。我也在尝试在拾取字体时更改背景颜色。

那是我的代码:

    <script type="text/javascript">     
    function changeFont(_name) {
        document.body.style.fontFamily = _name;
        document.textarea = _name;
    } 
    </script>

</head>
<body style="font-family">   
    <form id="myform">
        <input type="text" /> 
        <button>erase</button> 
        <select id="fs" onchange="changeFont(this.value);">
            <option value="arial">Arial</option>
            <option value="verdana">Verdana</option>
            <option value="impact">Impact</option>
            <option value="'ms comic sans'">MS Comic Sans</option>
        </select>
        <div align="left">
            <textarea style="resize: none;" id="mytextarea" 
                 cols="25" rows="3" readonly="readonly" wrap="on">
                Textarea
            </textarea>
            <div id='container'>
                <div id='float'>
                    <p>This is a container</p>
                </div>
    </form>
</body>

当我在浏览器中尝试时,字体系列在文本区域中不会改变。它只会在容器中发生变化。我现在也知道如何在选择字体系列时为容器和textarea设置新的字体大小和背景。

我会感谢任何帮助人员!

4 个答案:

答案 0 :(得分:47)

完整的解决方案:

<强> HTML:

<form id="myform">
    <button>erase</button>
    <select id="fs"> 
        <option value="Arial">Arial</option>
        <option value="Verdana ">Verdana </option>
        <option value="Impact ">Impact </option>
        <option value="Comic Sans MS">Comic Sans MS</option>
    </select>

    <select id="size">
        <option value="7">7</option>
        <option value="10">10</option>
        <option value="20">20</option>
        <option value="30">30</option>
    </select>
</form>

<br/>

<textarea class="changeMe">Text into textarea</textarea>
<div id="container" class="changeMe">
    <div id="float">
        <p>
            Text into container
        </p>
    </div>
</div>

<强> jQuery的:

$("#fs").change(function() {
    //alert($(this).val());
    $('.changeMe').css("font-family", $(this).val());

});

$("#size").change(function() {
    $('.changeMe').css("font-size", $(this).val() + "px");
});

在这里小提琴:http://jsfiddle.net/AaT9b/

答案 1 :(得分:5)

在我看来,只需在主体上设置一个类,并根据该类在css中设置font-family,这将是一个更简洁的解决方案。
不知道在你的情况下这是否是一个选项。

答案 2 :(得分:1)

在某些浏览器中,字体是为textareas和输入设置的,因此它们不会从较高元素继承字体。所以,我认为您需要为每个textarea应用字体样式并在文档中输入(而不仅仅是正文)。

一个想法可能是在主体上添加clases,然后使用CSS来相应地设置文档的样式。

答案 3 :(得分:0)

如果您只想更改TEXTAREA中的字体,则只需将原始代码中的changeFont()函数更改为:

function changeFont(_name) {
    document.getElementById("mytextarea").style.fontFamily = _name;
}

然后选择字体只会在TEXTAREA中改变字体。