寻找更好的解决方案

时间:2014-05-30 16:48:56

标签: javascript jquery html json

根据买家的需要,我可以购买不同颜色的产品。

我的第一个下拉菜单是他们购买的产品很容易浪费你的时间。

第二个是购买2个产品。 下拉1有黑/白/红/蓝 下拉2有黑/白/红/蓝

第二层是购买3种产品

下拉1有黑/白/红/蓝 下拉2有黑/白/红/蓝 下拉3有黑/白/红/蓝

每种变体都有不同的链接,例如,有3种产品,48种购买黑色的方式。 BK / BK / Bk等。

我要做的是创建一个采用黑色白色红色或蓝色的代码,并创建一个链接,无论颜色如何。

以下是基于黑/黑/黑= http://get.pressybutton.com/cart/653746441:1颜色的链接 不幸的是,链接特征不是基于颜色选项(或者这将更容易)。我想要做的是创建一个方法,无论选择哪种白色黑色红色,红色黑色白色或黑色红色白色,链接将始终为黑色红色白色。

非常广泛的权利。这是我创建的代码。 HTML

   <form id="dropdown" name="dropdown">
        <select accesskey="E" class="style stylethree combine3" id="target"
        name="selected">
            <option value="black">
                Black
            </option>

            <option value="blue">
                Blue
            </option>

            <option value="red">
                Red
            </option>

            <option value="white">
                White
            </option>
        </select> <select accesskey="E" class="style stylefour combine4" id=
        "target" name="selected">
            <option value="black">
                Black
            </option>

            <option value="blue">
                Blue
            </option>

            <option value="red">
                Red
            </option>

            <option value="white">
                White
            </option>
        </select> <select accesskey="E" class="style stylefive combine5" id=
        "target" name="selected">
            <option value="black">
                Black
            </option>

            <option value="blue">
                Blue
            </option>

            <option value="red">
                Red
            </option>

            <option value="white">
                White
            </option>
        </select> <input class="select_pre_1" type="button" value=
        "Get (3) Pressy’s!">
    </form>

Jquery的

var solidLink = "http://get.pressybutton.com/cart/";
var col_1a;
var col_2a;

var col_1b;
var col_2b;
var col_3b; 
$('.select_pre_1').click(function(){
    /*** BLACK BLACK ---- COLOR ***/
    if(col_1b == "black" && col_2b == "black" && col_3b == "black"){

        window.location.href = solidLink+"653746441:1"
    }
    if(col_1b == "black" && col_2b == "black" && col_3b == "red"){
        window.location.href = solidLink+"653746445:1"
    }
    if(col_1b == "black" && col_2b == "black" && col_3b == "white"){
        window.location.href = solidLink+"653746449:1"
    }   
    if(col_1b == "black" && col_2b == "black" && col_3b == "blue"){

        window.location.href = solidLink+"653746497:1"
    }
});

最后的想法。

我想要做的是创建一个var,它结合了三个选择的变量,然后计算它们,无论它应该吐出的形式抓住正确的链接。这是我的例子。

var solidLink = "http://get.pressybutton.com/cart/";
var col_1a;
var col_2a;

var col_1b;
var col_2b;
var col_3b;
var combine_3 = col_1b+","+col_2b+","+col_3b; 
$('.select_pre_1').click(function(){
    if(combine_3 == "black"){
       window.location.href = solidLink+"653746441:1"
    }
    if(combine_3 == "black, white, black")/*** The variation shouldnt matter ***/{
       window.location.href = solidLink+"653746449:1"
    }
});

我认为上述方法可行。所以无论颜色如何,它只会检查它是否具有所有这三个var。最后我知道这可以用json完成......(我不是最好的)。谢谢!!!我希望我能为每个人拼出这个。

1 个答案:

答案 0 :(得分:0)

而不是

$('.select_pre_1').click(function(){
    /*** BLACK BLACK ---- COLOR ***/
    if(col_1b == "black" && col_2b == "black" && col_3b == "black"){

        window.location.href = solidLink+"653746441:1"
    }
    if(col_1b == "black" && col_2b == "black" && col_3b == "red"){
        window.location.href = solidLink+"653746445:1"
    }
    if(col_1b == "black" && col_2b == "black" && col_3b == "white"){
        window.location.href = solidLink+"653746449:1"
    }   
    if(col_1b == "black" && col_2b == "black" && col_3b == "blue"){

        window.location.href = solidLink+"653746497:1"
    }
});

你应该嵌套if语句以使其更清晰,更重要的是,如果col_1bcol_2b不是黑色,那么col_3b并不重要是

$('.select_pre_1').click(function(){
    /*** BLACK BLACK ---- COLOR ***/
    if(col_1b == "black" && col_2b == "black"){
        if (col_3b == "black"){
        window.location.href = solidLink+"653746441:1";
        } else if col_3b == "red"){
            window.location.href = solidLink+"653746445:1";
        } else if col_3b == "white"){
        window.location.href = solidLink+"653746449:1";
        } else if col_3b == "blue"){
        window.location.href = solidLink+"653746497:1";
        }
    }
});

你也错过了分号。

像这样编写代码是嵌套在另一个层次上但是很明显而且非常重要。

另一种方法是在内部使用Case语句而不是if块。