我在视图中有以下代码:
<div id="wiz_main" data-place-schema="@Model.IsAgent">
...
</div>
这是呈现的代码:
<div id="wiz_main" data-agent="True">
...
</div>
我写的javascript文件中的代码:
if ($('#wiz_main').data('agent'))
limit = 1000;
else
limit = 5;
问题在于,limit
总是等于5
。为什么?我认为data
很聪明,并将价值转换为bool
。我不想写下面的内容:
if ($('#wiz_main').data('agent') == 'True')
limit = 1000;
else
limit = 5;
jQuery
的版本是1.7.2。
答案 0 :(得分:0)
你试过这个吗?
if ( $('#wiz_main').attr('data-agent') == 'True' ){....}
修改强>
if ( $('#wiz_main').attr('data-agent') ){....}
另外,为什么不在html中写true
而不是True
?
答案 1 :(得分:0)
如果您使用data
方法设置数据,则可以将其另存为bool:
$('#wiz_main').data({ agent: true });
var agentbool = $('#wiz_main').data('agent');
console.log(typeof agentbool); //boolean
但是,html5数据属性将始终存储为字符串
console.log(typeof $('#wiz_main').data('agent')); //string
与bool解析最接近的是
function parseBool(str){
return typeof str === 'string' && str.toLowerCase() === 'true';
}
var str = $('#wiz_main').data('agent');
var agentbool = parseBool(str);