【问题标题】:is [data-empty] part of the browser environment是浏览器环境的 [data-empty] 部分
【发布时间】:2014-01-21 10:00:21
【问题描述】:
我正在玩一个使用 socket.io 的开源 node.js 项目。它有一些代码检查 $('[data-empty]' 的长度是否大于 0。虽然没有附加类或 id,但我认为从这个来看 data-empty 是标记中的某种元素,但是它不存在于应用程序使用的模板中。因此,我假设它是浏览器环境的一部分,但我找不到关于它的文档。您能解释一下 data-empty 发生了什么吗?它在检查什么数据?
if ($('[data-empty]').length > 0) {
$('[data-empty]').first().attr('src', data.meat.chat.value.media).removeAttr('data-empty');
return;
}
【问题讨论】:
标签:
javascript
jquery
node.js
socket.io
【解决方案1】:
它指的是一个属性data-empty
所以查询正在寻找具有属性data-empty的所有元素
例如:
<div data-empty=42></div
【解决方案2】:
它检查是否有任何具有data-empty 属性的 HTML 标记。
例如。 <div data-empty="something"></div> 会匹配!
【解决方案3】:
if ($('[data-empty]').length > 0)
实际上是指'如果存在任何具有 data-empty 属性的元素'
因此,在以下文档中,代码将运行
<body>
<div data-empty="true"></div>
<div data-empty="false">foo</div>
<div data-empty></div>
</body>
在这个过程中,它不会
<body>
<div></div>
</body>
您也可以通过类似的方式选择具有特定属性值的元素,例如:
$('[data-empty="true"]') 和 $('input[type="text"]')