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

Javascript 如何确定数据属性是否设置为空值?,javascript,jquery,html,Javascript,Jquery,Html,有没有办法确定一个数据属性是设置为空值还是根本没有设置它的值 请参阅此小提琴示例,单击元素时检查控制台: 我对第三个例子有意见。我需要知道该属性是否实际设置为空值,或者是否根本没有设置。这真的有可能吗 编辑:我问的原因是我正在用attributes值更新内容,因此data test=应该将内容更新为空值,但是data test应该什么都不做这是不可能的。以下两个元素在第一个元素中被规范化为相同的元素 <div data-test="" onclick="console.log($(this

有没有办法确定一个数据属性是设置为空值还是根本没有设置它的值

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

我对第三个例子有意见。我需要知道该属性是否实际设置为空值,或者是否根本没有设置。这真的有可能吗


编辑:我问的原因是我正在用attributes值更新内容,因此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来测试这一点。您需要想出一种不同的方法来实现这一点。

这是不可能的。以下两个元素在第一个元素中被规范化为相同的元素

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

您是否在尝试找出是否存在空值和空值在上下文中的区别?这是至关重要的还是您只是想更好地理解?我正在使用属性更新内容,因此data test=应该将内容更新为空值,但data test此时不应执行任何操作all@Ian:现在我想,.outerHTML可能会以任何方式提供相同的输出,因为它不反映原始源代码,而是动态序列化。@StephanWagner:有没有办法确定数据属性是设置为空值还是根本没有设置?如果不设置,则标记中根本没有数据测试:如果在标记中有数据测试,但没有给它一个值,则其值为。例如,和与data-*属性完全相同。您是否在尝试找出是否存在?空和空在上下文中有何区别?这是至关重要的还是您只是想更好地理解?我正在使用属性更新内容,因此data test=应该将内容更新为空值,但data test此时不应执行任何操作all@Ian:现在我想,.outerHTML可能会以任何方式提供相同的输出,因为它不反映原始源代码,而是动态序列化。@StephanWagner:有没有办法确定数据属性是设置为空值还是根本没有设置?如果不设置,则标记中根本没有数据测试:如果在标记中有数据测试,但没有给它一个值,则其值为。例如,和与data-*属性完全相同。参考:item“Empty attribute syntax”。这适用于HTML语法中的HTML5。在XHTML语法中,不允许使用不带等号和引号的属性名。这是一种格式良好的冲突。好吧,谢谢你,我来看看是否能想出一个不同的解决方案,然后参考:item“Empty attribute syntax”。这适用于HTML语法中的HTML5。在XHTML语法中,不允许使用不带等号和引号的属性名。这是一种格式良好的冲突。好吧,谢谢你,我会看看是否能想出一个不同的解决方案