簡體   English   中英

使用jQuery.data從dom元素獲取布爾值?

[英]Use jQuery.data to get a boolean from a dom element?

jQuery的。數據()的文檔 ,你可以使用。數據()方法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中將這些字符串值轉換為布爾值(看起來很la腳)?

您的示例僅適用於:-)

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會猜測布爾值,空值,數字類型和JSON(!!!對我來說是新的)

您可以簡單地使用類型轉換。 可以將data-foo設置為1 = true0 = false並使用以下示例: http : //jsfiddle.net/QAkQW/

嘗試將字符串轉換為JavaScript值(包括booleans ,數字,對象,數組和null),否則將其保留為字符串。

您應該只能夠執行以下操作:(這就是您正在執行的操作)

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

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

查看.data()的示例代碼。

如果需要布爾值,則可以通過“ 設置”或“不設置此屬性”來實現。

但是似乎jQuery.data已經為您獲取了布爾值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM