如何发现数据属性是否设置为空值?



是否有一种方法可以找出数据属性是否被设置为空值,或者它的值是否根本没有设置?

请参阅以下示例(单击元素时检查控制台):

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>

我对第三个例子有问题。我需要知道如果属性实际上被设置为一个空值,或者如果它根本没有设置。这可能吗?

EDIT:我问的原因是我正在用属性值更新内容,所以data-test=""应该将内容更新为空值,但data-test应该什么都不做

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

<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来测试这一点。你需要想出一个不同的方法来实现这一点。

最新更新