是否有必要检查元素是否具有属性?

Cyb*_*kie 6 html javascript jquery

我在HTML元素中使用数据属性

例:

<div class="fruit" data-color="red">...</div>
Run Code Online (Sandbox Code Playgroud)

在jQuery中我使用了data属性$(this).data("color")并添加它有一个类名称.

在将数据属性添加为类之前,是否有必要首先验证数据属性是否存在?例:

// $(this) is .fruit div
if ( $(this).data("color") ) {
   $(this).addClass($(this).data("color")); //adds data value as class to element
}
Run Code Online (Sandbox Code Playgroud)

还是jQuery处理那个?我尝试在没有if语句的情况下运行代码,如果元素没有"color"数据属性,我不会得到任何错误.我猜jQuery只是忽略它.

Ror*_*san 4

jQuery为你处理这个问题 - 实际上它对大多数方法参数的接受都非常强大,而不会产生任何错误.

在这种情况下,如果data找不到属性(或没有值),它将返回undefined.如果你那么addClass(undefined)jQuery将对所选元素不执行任何操作.