[英]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 = true
或0 = 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.