0

ビューに次のコードがあります。

<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常に equals です5。なんで?は賢いと思いdata、値を に変換しますbool。以下は書きたくない。

if ($('#wiz_main').data('agent') == 'True')
       limit = 1000;
else
       limit = 5;

のバージョンjQueryは 1.7.2 です。

4

2 に答える 2

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

ブール解析に最も近いものは次のようになります

function parseBool(str){
    return typeof str === 'string' && str.toLowerCase() === 'true';
}

var str = $('#wiz_main').data('agent');
var agentbool = parseBool(str);
于 2012-11-06T12:05:13.983 に答える
0

これを試しましたか?

if ( $('#wiz_main').attr('data-agent') == 'True' ){....}

編集

if ( $('#wiz_main').attr('data-agent') ){....}

また、あなたのhtmltrueの代わりに書いてみませんか?True

于 2012-11-06T11:28:40.037 に答える