【问题标题】:Looking for a better solution寻找更好的解决方案
【发布时间】:2014-07-20 12:14:50
【问题描述】:

我有多种产品,可以根据购买者的需求购买不同颜色的产品。

我的第一个下拉菜单是如果他们购买 1 件很容易不会浪费您时间的产品。

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

第二层是购买3个产品

Dropdown 1 有黑色/白色/红色/蓝色 Dropdown 2有黑色/白色/红色/蓝色 下拉菜单 3 有黑色/白色/红色/蓝色

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

我要做的是创建一个采用黑色白色红色或蓝色的代码,并创建一个不考虑颜色的链接。

这是一个基于颜色 Black / Black / Black = 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"
    }
});

我认为上面的方法可行。因此,无论颜色如何,它都会检查它是否具有所有这三个变量。最后我知道这可以用json来完成......(我不是最好的)。谢谢!!!我希望我为每个人都说明了这一点。

【问题讨论】:

    标签: javascript jquery html json


    【解决方案1】:

    而不是这个

    $('.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 块。

    【讨论】:

    • 您的方法还可以,接受颜色可以是全部 3 种,而不仅仅是最后一种。我明白你的意思了。我认为 .push 变量应该很好用。感谢您的输入,但应该有一种方法可以测量变量,而不必从各个角度进行测量,例如,blk blk blk, wh blk wh, blk wh wh,变量的位置应该无关紧要。
    • 有一种方法可以对 HTML 中的选项进行分组,这样您就不能选择多个,啊,我的大脑在夜间关闭,我有一半的想法...... .
    猜你喜欢
    • 1970-01-01
    • 2013-01-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-15
    • 1970-01-01
    • 2012-06-04
    • 1970-01-01
    相关资源
    最近更新 更多