转换从js函数返回的值

时间:2018-01-17 00:19:00

标签: javascript

在尝试完成条件语句if( asset_type.indexOf("true,false") >= 0 )

时,以下js会返回如下错误

我试图将asset_type转换为字符串...并且全部失败

错误

  

asset_type.get不是函数

以下代码确实返回

console.log("Asset Type (row " + i + "): " + asset_type );
  

资产类型(第12行):true,false

代码:

$("#myTable_asset").children("tbody").children("tr").each(function (i) {
    var $this = $(this);
    var my_td = $this.children("td");
    var second_col = my_td.eq(1);
    var third_col = my_td.eq(2);
    second_col.find("input[type=text]").val(function(i, val) {
        return val.replace(/\$|,/g, '');
    });

    var asset_value =   second_col.find("input[type=text]").val();
    var asset_type = third_col.find(":checkbox").map(function(_, el) { return el.checked }).get()

    console.log("Asset Type (row " + i + "): " + asset_type );

    try {
        if ( '' != asset_type)
        {

            console.log("Asset Cost (row " + i + "): " + parseFloat(asset_value));
            console.log("Asset Type (row " + i + "): " + asset_type );

            if( asset_type.indexOf("true,false") >= 0  )
            {
                capex_value += parseFloat(asset_value);
            }

            if(asset_type.get().indexOf("false,true") >= 0  )
            {
                opex_value += parseFloat(asset_value);
            }

        }
    }

    catch(err) {
        console.log(err.message);
    }
});

打印出third_col.html()会给出以下内容:

<fieldset data-role="controlgroup" data-type="horizontal" class="ui-controlgroup ui-controlgroup-horizontal ui-corner-all">
    <div class="ui-controlgroup-controls ">
        <div class="ui-checkbox ui-mini">
            <label for="asset_allocation_capex_19" class="ui-btn ui-corner-all ui-btn-inherit ui-checkbox-off ui-first-child">
                Capex
            </label>
            <input type="checkbox" name="asset_allocation_capex_19" id="asset_allocation_capex_19" data-mini="true">
        </div>                                                                                                                              
        <div class="ui-checkbox ui-mini">
            <label for="asset_allocation_opex_19" class="ui-btn ui-corner-all ui-btn-inherit ui-checkbox-on ui-btn-active ui-last-child">
                Opex
            </label>
           <input type="checkbox" name="asset_allocation_opex_19" id="asset_allocation_opex_19" data-mini="true" checked="">
        </div>                                                                                                                          
    </div>
</fieldset> 

2 个答案:

答案 0 :(得分:1)

asset_type是[true,false]的数组。 你不能get()indexOf('true,false')。 你可以这样做:

var first = asset_type[0], scond = asset_type[1];
if(first=== true && second === false){...}
else if(first=== false && second === true){...}

答案 1 :(得分:0)

我认为你忘记了你已经在jquery元素上使用了get():

var asset_type = third_col.find(":checkbox").map(function(_, el) {
return el.checked }).get()

只需检查您的代码。