2

jQuery の .data() ドキュメントによると、 .data() メソッドを使用してdata、dom 要素からプレフィックス付きの属性を取得できます。例えば:

{# Include jquery.... #}
<div id='mydiv' data-foo='bar'></div>
<script>
    var foo = $('#mydiv');
    foo.data('foo');   // == 'bar'
</script>

そうは言っても、これらの dom オブジェクトでブール値をどのように設定して渡すのか興味があります。私の知る限り、これは機能しませ:

JavaScript エラーをスローします。

{# Include jquery.... #}
<div id='mydiv' data-foo=false></div>

ブール値の代わりに文字列を設定します:

{# Include jquery.... #}
<div id='mydiv' data-foo='false'></div>
<script>
    var foo = $('#mydiv');
    foo.data('foo');   // == 'false'
</script>

では、dom にブール値を設定するにはどうすればよいでしょうか。または、これらの文字列値を JavaScript でブール値に変換する必要がありますか?

4

4 に答える 4

3

あなたの例はうまくいきます:-)

http://jsfiddle.net/zerkms/pnsfL/

https://github.com/jquery/jquery/blob/master/src/data.js#L335

data = data === "true" ? true :
data === "false" ? false :
data === "null" ? null :
jQuery.isNumeric( data ) ? parseFloat( data ) :
    rbrace.test( data ) ? jQuery.parseJSON( data ) :
    data;

したがって、jquery は boolean、null、numeric 型、および JSON を推測します (!!! これは私にとって新しいことです)。

于 2012-06-07T02:58:17.670 に答える
1

単純に型変換を使用できます。data-fooに設定する1 = true0 = false、この例を使用できます: http://jsfiddle.net/QAkQW/

于 2012-06-07T03:00:34.527 に答える
0

文字列を JavaScript 値 (ブール値、数値、オブジェクト、配列、および null を含む) に変換するためのあらゆる試行が行われます。それ以外の場合は、文字列のままになります。

あなたは単に次のようなことをすることができるはずです: (それはあなたがしていることです)

<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>

$("div").data("hidden") === true;

のサンプルコードを見てください.data()

于 2012-06-07T03:01:00.120 に答える
0

ブール値が必要な場合は、この属性を設定または設定しないことでそれを行うことができます。

しかし、jQuery.data はすでにブール値を取得しているようです。

于 2012-06-07T03:01:20.477 に答える