使用javascript更改font-family font-size和font-weight无效?

时间:2015-11-18 02:01:03

标签: javascript jquery html css

我正在尝试使用以下javascript来更改textareas的内容,具体取决于下拉框中选择的内容。 http://jsfiddle.net/73udajhm/

Javascript:

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

$(function () {
    $("#fonttype").on('change', function () {
    $('.address').css('font-family', $(this).val());
    });
});

$(function () {
    $("#fontweight").on('change', function () {
    $('.address').css('font-weight', $(this).val());
    });
});

HTML:

Font Size:
<select id="fontsize">
<option>-</option>
<option value="24">24</option>
<option value="16">16</option>
</select>

<br />Font Type:
<select name="fonttype">
<option>-</option>
<option value="verdana">Verdana</option>
<option value="arial">Arial</option>
</select>

<br />Font Weight:
<select id="fontweight">
<option>-</option>
<option value="bold">Bold</option>
<option value="regular">Regular</option>
</select>

<div>
<textarea id="label" class='address'>Hello 123</textarea>
<textarea class='address'>Hello 123</textarea>
</div>

3 个答案:

答案 0 :(得分:2)

请检查您的编码。

由于您在字体类型选择器上设置了name而不是id,因此系列无效。

对于regular

normal应为font-weight

答案 1 :(得分:2)

可以通过调整htmljs缩短为单一功能;将id元素设置为要设置为css的属性;在normal元素处替换regular fontFamily;在设置RegExp.prototype.test()值时,使用"px"检查元素值中的数字以返回包含selectcss值字符串的长度值。

HTML

Font Size:
<select name="fontSize" id="fontSize">
    <option>-</option>
    <option value="24">24</option>
    <option value="16">16</option>
</select>
<br />Font Type:
<select name="fontFamily" id="fontFamily">
    <option>-</option>
    <option value="verdana">Verdana</option>
    <option value="arial">Arial</option>
</select>
<br />Font Weight:
<select name="fontWeight" id="fontWeight">
    <option>-</option>
    <option value="bold">Bold</option>
    <option value="normal">Normal</option>
</select>
<div>
<textarea id="label" class='address'>Hello 123</textarea>
<textarea class='address'>Hello 123</textarea>
</div>

JS

$(function () {
    $("[id^=font]").on("change", function () {
       $(".address")
       .css(this.id, /\d/.test(this.value) ? this.value + "px" : this.value);
    });
});

jsfiddle http://jsfiddle.net/73udajhm/6/

答案 2 :(得分:1)

我认为这是最干净的版本:

&#13;
&#13;
$(function() {
  $("select").on('change', function() {
    var $property = $(this).attr('name');
    var $value = $(this).data("sufix") ? $(this).val() + $(this).data("sufix") : $(this).val();
    $('.address').css($property, $value);
  });

});
&#13;
Font Size:
<select name="font-size" data-sufix="px">
  <option>-</option>
  <option value="24">24</option>
  <option value="16">16</option>
</select>
<br />Font Type:
<select name="font-family">
  <option>-</option>
  <option value="Verdana">Verdana</option>
  <option value="Arial">Arial</option>
</select>
<br />Font Weight:
<select name="font-weight">
  <option>-</option>
  <option value="bold">Bold</option>
  <option value="normal">Normal</option>
</select>
<div>
  <textarea id="label" class='address'>Hello 123</textarea>
  <textarea class='address'>Hello 123</textarea>
</div>
&#13;
&#13;
&#13;

干杯!