我正在尝试让以下javascript根据下拉框中选择的内容更改文本区域的内容。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>
调整html
、js
来缩短为单个函数;将元素的id
设置为要设置为css
的属性;在元素fontFamily
处用normal
替换regular
;使用RegExp.prototype.test()
检查元素值中的数字,以返回长度值,包括"px"
或select
值的字符串,在设置css
值时
.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/
只需检查您的编码即可。
该系列不起作用,因为您在字体类型选择器上设置了name
而不是id
。
regular
应该normal
font-weight
我认为这是最干净的版本:
$(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);
});
});
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>
干杯!