如何在不添加jQuery值的情况下设置数据属性?我要这个:
<body data-body>
Run Code Online (Sandbox Code Playgroud)
我试过了:
$('body').attr('data-body'); // this is a getter, not working
$('body').attr('data-body', null); // not adding anything
Run Code Online (Sandbox Code Playgroud)
其他所有东西似乎都将第二个参数添加为字符串.是否可以只设置一个没有值的属性?
我想使用自定义布尔属性将元素的内容标记为可编辑.我知道data-*
属性,但不确定它们是否需要值.我不需要data-is_editable="false"
,因为缺少属性是等价的.我只关心它是否为"真"(如果属性存在).我知道我可以使用其他属性,class
但我不想,因为它似乎有点不合适(纠正我,如果我错了).
这是我正在阅读的资源,也许是错误的文件,或者我忽略了我正在寻找的信息:http: //www.w3.org/html/wg/drafts/html/master/dom.html#自定义数据属性
那么,例如,这是合法有效的吗?
<div data-editable data-draggable> My content </div>
Run Code Online (Sandbox Code Playgroud) 是以class
下列格式的空属性有效HTML:
<p class="">something</p>
<p class>something</p>
Run Code Online (Sandbox Code Playgroud)
我发现这个问题类似,但具体询问自定义数据属性.
我想知道html数据属性是否真的需要应用一个值?
我想知道这一点,因为我们通常想知道的是,该属性是否实际设置为一个标志.(确定我们可以为此使用一个类;但实际上除非你要以不同方式设置这些项的样式,否则标志比语义项更多的数据).
一个完美的例子是,如果我们想要一个链接滚动到它的目标而不是跳转我们的jQuery代码可能看起来像:
$(document).on('click', '[data-scroll-link'], function(){/**do scroll**/});
Run Code Online (Sandbox Code Playgroud)
我知道在Google Chrome中,锚点就足够了
<a href="#bottom" data-scroll-link>Scroll to bottom</a>
Run Code Online (Sandbox Code Playgroud)
但那会无处不在吗?它甚至是有效的HTML5(我相信这是由于自动对焦,自动播放等属性).或者我们需要:
<a href="#bottom" data-scroll-link="true">Scroll to bottom</a>
Run Code Online (Sandbox Code Playgroud) 您可以将data-*
属性用作布尔属性吗?如果没有,是否有替代方案?
例如,你可以有
<input disabled>
Run Code Online (Sandbox Code Playgroud)
在某些情况下,拥有
<input data-on>
Run Code Online (Sandbox Code Playgroud)
使用data-on="true"
ordata-on=""
不可取——属性的存在应该表明它的布尔值。