Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
干涸jquery函数_Jquery_Dry - Fatal编程技术网

干涸jquery函数

干涸jquery函数,jquery,dry,Jquery,Dry,我有一个表单,它有许多按主题分组的选择输入。我对每个组都有一个主选择,允许用户将组中的所有选择设置为主值(gradescales是一种提供1-8级的方法) 我怎么才能把它弄干呢 形式 因此,当section_one_master被更改时,函数被点击,section_one_wrapper div中的所有select输入都被更改,以匹配master中选择的任何值 我有许多组,每个组都有一个主选择输入。如何将其干燥为一个函数,然后动态标识首先调用该函数的主节点,并使用约定更改相应的分组选定项?您可以

我有一个表单,它有许多按主题分组的选择输入。我对每个组都有一个主选择,允许用户将组中的所有选择设置为主值(gradescales是一种提供1-8级的方法)

我怎么才能把它弄干呢

形式 因此,当section_one_master被更改时,函数被点击,section_one_wrapper div中的所有select输入都被更改,以匹配master中选择的任何值


我有许多组,每个组都有一个主选择输入。如何将其干燥为一个函数,然后动态标识首先调用该函数的主节点,并使用约定更改相应的分组选定项?

您可以向主节点元素添加类:

$(".section-masters").change( function() {  
    var id = this.id.replace('master', 'wrapper');   
    $('#' + id + " select").val(this.value);
});
请注意,在change handler
的上下文中,此
引用元素,您不必重新选择元素

您还可以选择节包装器元素并缓存对象,并使用
filter
方法,通过缓存对象,您只选择这些元素一次,这比重新选择它们要好

var $wrappers = $('.section-wrappers');
//...
$wrappers.filter('[id="' + id + '"]').val(this.value);  

是的,正如@Blazemonger所说的,你可以使用一个类,它会帮助很多

但你也可以这样做

var foos = ['one', 'two'];

$.each(foos, function(index, elem){
  var $selector = $("#section_" + elem + "_master");
  $selector.change( function() { 
   var a = $selector.val(); 
   $("#section_" + elem + "_wrapper select").val(a);
  });
});

但完全是!如果你能用一个类做它

最后,我为每个主控添加了一个类和一个id,并将每个部分包装成一个id。然后在我的咖啡脚本中:

  $(".master_change").change -> $("div##{@.id}_section select").val $(@).val()

脚本由任何.master_change触发,它从'this'获取id,然后添加到'_section',后者获取该节的包装选择…然后当然更改其所有值以匹配master。12线对一线

使用类而不是id。
var foos = ['one', 'two'];

$.each(foos, function(index, elem){
  var $selector = $("#section_" + elem + "_master");
  $selector.change( function() { 
   var a = $selector.val(); 
   $("#section_" + elem + "_wrapper select").val(a);
  });
});
  $(".master_change").change -> $("div##{@.id}_section select").val $(@).val()