使用 jQuery.data 从 dom 元素获取布尔值
Use jQuery.data to get a boolean from a dom element?
根据jQuery的.data()文档,你可以使用.data()方法从dom元素中data
前缀属性。例如:
{# 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 中将这些字符串值转换为布尔值(这似乎很蹩脚)?
你的例子很好用:-)
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猜测布尔值,null,数字类型和JSON(!!这对我来说是新的)
您可以简单地使用类型转换。 data-foo
可以设置为 1 = true
或 0 = false
并使用以下示例:http://jsfiddle.net/QAkQW/
每次尝试都将字符串转换为 JavaScript 值(这包括布尔值、数字、对象、数组和 null),否则将保留为字符串。
你应该能够简单地做这样的事情:(这就是你正在做的事情)
<div data-role="page" data-last-value="43" data-hidden="true" data-options='{"name":"John"}'></div>
$("div").data("hidden") === true;
查看示例代码以了解 .data()
。
如果你想要布尔值,你可以通过设置或不设置此属性来完成。
但似乎jQuery.data已经为你获得了布尔值。
相关文章:
- React - 从 DOM 元素获取组件以进行调试
- 如何使用 JQuery 从相对元素获取 html 文本
- 从同一域上的 iframe 中的元素获取值
- 使用本机 Javascript 从 DOM 元素获取选择器字符串
- 使用jquery从另一个元素获取使用id的输入的id
- 如何从角度元素获取编译的节点值
- 如何为不同的元素获取不同的父类
- 从 jQuery 中的子元素获取父 tr 元素
- 当浮点部分为空时,从 JQuery 中的输入元素获取数字值不起作用
- 从 XML 元素获取文本
- 从音频元素获取音频样本
- 从所选元素 html 上方的元素获取属性值
- 使用 jQuery.data 从 dom 元素获取布尔值
- 如何通过jquery从某个元素获取部分文本
- 从输入元素获取表单和表单数据对象
- 从动态元素获取挖空视图的大小
- 从中继器循环中显示的子自定义元素获取正确的上下文.奥蕾莉亚
- 如何使用 JavaScript 或 JQuery 从输入类型=文件 html 元素获取文件名
- 从父元素获取 ID 并将它们放在数组中
- 尝试从选项元素获取 HTML