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
});