在尝试完成条件语句if( asset_type.indexOf("true,false") >= 0 )
我试图将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>
答案 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()
只需检查您的代码。