Javascript 试图找到一种更有效的方法来执行多个替换,而无需在jQuery中重复相同的代码

Javascript 试图找到一种更有效的方法来执行多个替换,而无需在jQuery中重复相同的代码,javascript,jquery,Javascript,Jquery,我有一堆用#selector1,#selector2,#selector3,等等包装的,我还有一堆用#data1,#data2,#data3包装的 每次更改每个#选择器中的下拉列表时,它都会替换相应#数据中的文本。例如,更改#selector或1中的下拉列表会更改#data1中的文本 为了更好地理解,以下是我的代码: $(“#selector1.choose”).on('change',函数(e){ 变量titleName=$('#selector1.choose').find(“:selec

我有一堆用
#selector1
#selector2
#selector3
,等等包装的
,我还有一堆用
#data1
#data2
#data3
包装的

每次更改每个
#选择器
中的下拉列表时,它都会替换相应
#数据
中的文本。例如,更改
#selector或1
中的下拉列表会更改
#data1
中的文本

为了更好地理解,以下是我的代码:

$(“#selector1.choose”).on('change',函数(e){
变量titleName=$('#selector1.choose').find(“:selected”).text();
$(#data1.title”).text(titleName);
e、 预防默认值();
});
$(“#selector2.choose”).on('change',函数(e){
变量titleName=$('#selector2.choose').find(“:selected”).text();
$(#data2.title”).text(titleName);
e、 预防默认值();
});
$(“#selector3.choose”)。关于('change',函数(e){
变量titleName=$('#selector3.choose').find(“:selected”).text();
$(#data3.title”).text(titleName);
e、 预防默认值();
});
.title{font size:16px;}

测试1
测试2
测试3
测试1
测试2
测试3
测试1
测试2
测试3
测试0
测试0
测试0

无需像这样复制代码,只需将其设置为泛型,按类绑定,并通过
$(this)访问值即可。
。您可以使用数据属性选择
h1

您可以这样改进它:

$(.choose”).on('change',函数(e){
var id=$(this.data('id');
var text=$(this.find(“:selected”).text();
$('#'+id+'.title').text(text);
e、 预防默认值();
});
.title{font size:16px;}

测试1
测试2
测试3
测试1
测试2
测试3
测试1
测试2
测试3
测试0
测试0
测试0

无需像这样复制代码,只需将其设置为泛型,按类绑定,并通过
$(this)访问值即可。
。您可以使用数据属性选择
h1

您可以这样改进它:

$(.choose”).on('change',函数(e){
var id=$(this.data('id');
var text=$(this.find(“:selected”).text();
$('#'+id+'.title').text(text);
e、 预防默认值();
});
.title{font size:16px;}

测试1
测试2
测试3
测试1
测试2
测试3
测试1
测试2
测试3
测试0
测试0
测试0
$(.choose”).on('change',函数(e){
var id=e.target.getAttribute('data-id');
var titleName=$(this.find(“:selected”).text();
$(“#”+id+“.title”).text(titleName);
e、 预防默认值();
});
.title{font size:16px;}

测试1
测试2
测试3
测试1
测试2
测试3
测试1
测试2
测试3
测试0
测试0
测试0
$(.choose”).on('change',函数(e){
var id=e.target.getAttribute('data-id');
var titleName=$(this.find(“:selected”).text();
$(“#”+id+“.title”).text(titleName);
e、 预防默认值();
});
.title{font size:16px;}

测试1
测试2
测试3
测试1
测试2
测试3
测试1
测试2
测试3
测试0
测试0
测试0

这太聪明了!我不是那样想的。谢谢那太聪明了!我不是那样想的。谢谢
$('.choose').change(function() {
    var this_nr=$(this).parent().attr('id').substr(-1);     //get curent nr from parent id
    var this_val=$(this).val();                             //get value from curent select
    $('#data'+this_nr+' .title').text(this_val);            //add value to output
});