我有一些代码正在运行,但我有很多重复: http://jsfiddle.net/6Wp2j/25/
$('input.apple').on('keyup', function() {
$("div.apple").html(this.value);
});
$('input.orange').on('keyup', function() {
$("div.orange").html(this.value);
});
$('input.banana').on('keyup', function() {
$("div.banana").html(this.value);
});
我想知道是否有办法将项目放入某种数组中,这样我就可以将相同的代码应用于几个不同的字段。
答案 0 :(得分:8)
你可以定位所有输入,或者只是给它们一个公共类来定位,并提取一些东西,我使用了这个类,但是如果元素有多个类等,数据属性会更容易:
$('input').on('keyup', function() {
$('.'+this.className).html(this.value);
});
修改强>
如上所述,如果元素有多个类,请使用数据属性:
<input class="input" data-id="apple" >
<input class="input" data-id="orange" >
<input class="input" data-id="banana" >
JS
$('.input').on('keyup', function() {
$('.' + $(this).data('id')).html(this.value);
});
答案 1 :(得分:2)
可以使用班级名称来完成:
$('input').on('keyup', function() {
$("div." + $(this).attr('class')).html(this.value);
});
我更希望在data-fruit
属性中使用关系/链接,例如:
$('input').on('keyup', function() {
$("div[data-fruit=" + $(this).data('fruit') + "]").html(this.value);
});
类名不是最适合定义关系的。考虑是否有一些设计师给你的代码,并开始在那里抛出额外的类进行样式化,这会破坏代码。
答案 2 :(得分:1)