如何简化或干燥此jquery代码的语法

twi*_*ter 2 javascript jquery refactoring

我在一大堆单选按钮组上做同样的选择.唯一改变的是name.

var fcolor = $(this).closest('.branch').find('input[name="fcolor"]:checked').val();
var bcolor = $(this).closest('.branch').find('input[name="bcolor"]:checked').val();
var sidec = $(this).closest('.branch').find('input[name="sidec"]:checked').val();
var linec = $(this).closest('.branch').find('input[name="linec"]:checked').val();
Run Code Online (Sandbox Code Playgroud)

如何简化此代码,以便我不重复这样的代码?

use*_*716 5

如果您对具有name属性的所有输入感兴趣,我会全部选择它们,创建属性和值的对象.

如果你需要挑出某些,给它们一个共同的类,然后选择它们.

var props = {};

$(this).closest('.branch').find('input[name]:checked').each(function() {
    props[ this.name ] = this.value;
});
Run Code Online (Sandbox Code Playgroud)

你最终得到这样的结构:

props = {
    fcolor: "some value",
    bcolor: "some value",
    sidec: "some value",
    linec: "some value"
};
Run Code Online (Sandbox Code Playgroud)

......可访问:

props.fcolor;  // "some value"
Run Code Online (Sandbox Code Playgroud)