如何确定数据属性是否设置为空值?

时间:2014-08-22 15:56:16

标签: javascript jquery html

有没有办法找出数据属性是设置为空值还是根本没有设置它的值?

请参阅此小提琴示例(单击元素时检查控制台):

http://jsfiddle.net/StephanWagner/yy8qvwfp/

<div onclick="console.log($(this).attr('data-test'))">undefined</div>

<div data-test="" onclick="console.log($(this).attr('data-test'))">empty</div>

<!-- this one will also return an empty value -->
<div data-test onclick="console.log($(this).attr('data-test'))">null</div>

<div data-test="value" onclick="console.log($(this).attr('data-test'))">value</div>

我遇到第三个例子的问题。我需要知道属性是否实际设置为空值或者根本没有设置。这有可能吗?

编辑:我问的原因是我正在使用属性值更新内容,因此data-test=""应该将内容更新为空值,但是{{1}什么都不做

1 个答案:

答案 0 :(得分:4)

这是不可能的。以下两个元素归一化为相同的东西(第一个)。

<div data-test="" onclick="console.log($(this).attr('data-test'))">empty</div>

<!-- this one will also return an empty value -->
<div data-test onclick="console.log($(this).attr('data-test'))">null</div>

我通过检查两个元素的outerHTML对此进行了测试。您需要采用不同的方式来实现这一目标。