jQuery Concatenate格式(字符串和条件语句)

时间:2015-06-29 11:34:18

标签: javascript jquery

我要做的是添加<select>标记并执行if声明。

我确实有错误。我认为这是我连接字符串的方式..

这是我的代码:

var load_volumes = jQuery('.micronic').val();
var arr_volumes = load_volumes.split(',');

var count_volumes = arr_volumes.length;
for(x=0; x<count_volumes; x++){

    jQuery('.append_here').append("<select class='volumes'>"
                                    +"<option>Choose Volume</option>"
                                    +"<option"
                                    + if(arr_volumes[x] == 0.5){
                                    + "selected"    
                                    + }
                                    +">0.5</option>"
                                    +"<option>0.75</option>"
                                    +"<option>1.10</option>"
                                    +"<option>1.40</option>"
                                    +"<option>2.0</option>"
                                    +"<option>2.5</option>"
                                    +"<option>3.0</option>"
                                    +"<option>4.0</option>"
                                    +"<option>6.0</option>"
                                    +"<option>7.5</option></select> &nbsp");
}

提前感谢。

4 个答案:

答案 0 :(得分:1)

请参阅下面的答案。您应该考虑使用模板引擎,例如把手。

jQuery('.append_here').append("<select class='volumes'>"
                                +"<option>Choose Volume</option>"
                                +"<option"
                                + (arr_volumes[x] == 0.5? " selected" : "")
                                +">0.5</option>"
                                +"<option>0.75</option>"
                                +"<option>1.10</option>"
                                +"<option>1.40</option>"
                                +"<option>2.0</option>"
                                +"<option>2.5</option>"
                                +"<option>3.0</option>"
                                +"<option>4.0</option>"
                                +"<option>6.0</option>"
                                +"<option>7.5</option></select> &nbsp");

答案 1 :(得分:1)

用三元选择器替换if行:

+ (arr_volumes[x] == 0.5? " selected" : "")

答案 2 :(得分:1)

append函数应该有一个元素作为输入,但这只会产生警告。代码中的问题是

+ if(arr_volumes[x] == 0.5){
+ "selected"    
+ }

理想情况下,请提前设置此值。您的代码可能如下所示:

var volumes = (arr_volumes[x] == 0.5) ? " selected" : ""; 
var select = "<select class='volumes'>"
                            +"<option>Choose Volume</option>"
                            +"<option"
                            + volumes
                            +">0.5</option>"
                            +"<option>0.75</option>"
                            +"<option>1.10</option>"
                            +"<option>1.40</option>"
                            +"<option>2.0</option>"
                            +"<option>2.5</option>"
                            +"<option>3.0</option>"
                            +"<option>4.0</option>"
                            +"<option>6.0</option>"
                            +"<option>7.5</option></select> &nbsp";
jQuery('.append_here').append(select);

但最后要考虑这样的事情,使其变化:

var values = [0.5, 0.75, 1.10, 1.40, 2.0, 2.5, 3.0, 4.0, 6.0, 7.5];
var content = "<select class='volumes'>"
for(var i=0; values.length; i++) {
    content += "<option";
    content += (arr_volumes[x] == values[i]) ? " selected" : "";
    content += ">" + values[i] + "</option>";
}
content += "</select>";

答案 3 :(得分:0)

尝试这种方式选择

var s="";
if(arr_volumes[x] == 0.5){
         s=" selected "  ;
}

jQuery('.append_here').append("<select class='volumes'>"
                                    +"<option>Choose Volume</option>"
                                    +"<option"
                                    + s 
                                    +">0.5</option>"
                                    +"<option>0.75</option>"
                                    +"<option>1.10</option>"
                                    +"<option>1.40</option>"
                                    +"<option>2.0</option>"
                                    +"<option>2.5</option>"
                                    +"<option>3.0</option>"
                                    +"<option>4.0</option>"
                                    +"<option>6.0</option>"
                                    +"<option>7.5</option></select> &nbsp");