首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >空id或null id是一种好的HTML实践吗?有条件地向html元素添加id

空id或null id是一种好的HTML实践吗?有条件地向html元素添加id
EN

Stack Overflow用户
提问于 2019-05-29 18:36:29
回答 1查看 489关注 0票数 0

我的目标是有条件地向html元素添加id。在JSX中,我遇到了这样的难题:有条件地向html元素添加id:

代码语言:javascript
运行
AI代码解释
复制
<SomeHTMLElement id={condition ? "someId" : ""} />

代码语言:javascript
运行
AI代码解释
复制
<SomeHTMLElement id={condition ? "someId" : null} />

哪种方法是更好的HTML实践?默认是null还是""

如果有另一种方法可以有条件地将id添加到HTML元素中,而不需要向元素本身引入id属性,那也是很好的方法。例如,<HTMLElement id /><HTMLElement id="" /><HTMLElement id={null} />最好不要有空的id属性,这样它就会编译成<HTMLElement />

EN

回答 1

Stack Overflow用户

发布于 2019-06-02 17:00:46

空的ID属性是不好的做法,因为它们是无效的HTML。如果在DOM中不需要ID属性,那么根本不需要输出它。

下面的文档包含一个没有值的id属性和一个显式空字符串的id=""属性。

代码语言:javascript
运行
AI代码解释
复制
<!DOCTYPE html>
<html lang="en">
  <head>
    <title>Empty ID validation test</title>
    <meta charset="utf-8">
  </head>
  <body>
    <h1>Empty ID validation test</h1>

    <p id>This paragraph has an id attribute without a value.</p>
    <p id="">This paragraph has an id attribute explicitly set to an empty string.</p>

  </body>
</html>

W3C验证器对此给出了两种不同的错误。

  1. “元素p上的属性id的值不正确: ID不能为空字符串。”对于此example.
  2. "Duplicate ID中的两个id属性,验证器都会显示此错误。ID必须是唯一的,但是验证器认为idid=""具有相同的值。

请注意,尽管在实践this doesn't cause accessibility harm unless the ID is being referred to by an IDREF elsewhere中,重复的in也是WCAG在A级的显式失败(请参阅F77: Failure of Success Criterion 4.1.1 due to duplicate values of type ID)。

在JSX中,我相信将属性设置为null值(例如<HTMLElement id={null} />)是防止它出现在DOM中的一种简单方法。注意,我在这里谈论的是实际的DOM,而不是虚拟的DOM。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56366659

复制
相关文章
jQuery遮罩(Mask)及弹窗时禁止页面滚动实现
保险起见可以把 html 和 body 的高度都设置 100% ,如下,用添加 class 的方法实现:
德顺
2019/11/13
6.6K0
jquery 页面滚动事件 scroll()
在没有任何元素的情况下,document的宽高是与window的宽高一致的,那么如果给document加入一些元素呢?
Devops海洋的渔夫
2019/06/02
10.3K0
WPF 拖动滚动
使用 ListBox 可以简单做到,那么如何使用 ScrollViewer 做到相同效果?
林德熙
2022/08/04
1.4K0
WPF 拖动滚动
使用 ListBox 可以简单做到,那么如何使用 ScrollViewer 做到相同效果?
林德熙
2018/09/19
1.5K0
WPF 拖动滚动
jQuery滚动到页面指定位置
        在前端的页面开发中,经常会碰到页面跳转问题,这个跳转指的是页面内部跳转到指定位置,通常是在有滚动条的情况下,网上介绍的方法很多,本文主要是介绍jQuery函数中的一个小trick,.focus()函数。
Tyan
2022/05/09
7.2K0
jQuery滚动到页面指定位置
canvas实现拖动页面时显示窗口视频
简介   当前主流的视频网站目前有不少新鲜好玩的功能,最明显的莫过于小视频的显示--当视频不在当前视口范围 时,会在右下角用一个小窗口来显示当前的视频,而且可以拖拽。   今晚心血来潮,起了动手试试的念头。我的想法很简单,用canvas来获取视频每一帧的数据,并用动画函数 requestAnimationFrame函数(这里没有考虑兼容性)来显示每一帧的视频数据。另外,对canvas绑定拖动的 功能,这样就基本实现了简易的窗口视频。   本章内容的重点就是requestAnimationFrame函数和ca
欲休
2018/03/15
1.6K0
canvas实现拖动页面时显示窗口视频
分享一款jQuery全屏滚动页面特性案例
分享一款jQuery全屏滚动页面特性案例。 我们在来往官网,或者小米官网都会看到全屏滚动页面的一些例子。可以说全屏滚动页面越来越受欢迎。它们就像是竖着的图片轮转一样。 这样的页面有很多,如:iPhone 5C页面:http://www.dowebok.com/demo/2014/77/index8.html  网易邮箱6.0:http://www.dowebok.com/demo/2014/97/ 来往官网:http://www.laiwang.com 百度百科史记2013:http://www.dowebok.com/demo/2014/78/ 搜狐快站:http://www.dowebok.com/demo/2014/80/ 证券时报网移动产品:http://www.dowebok.com/demo/2014/77/index9.html 邮箱大师:http://www.dowebok.com/demo/126/ 360安全路由:http://www.dowebok.com/demo/2014/77/index10.html 等等一些例子。看看实际代码:
业余草
2019/01/21
4.1K0
页面滚动,元素跳动;附带jquery.scrollex.js插件
有些动画是页面一加载就要的,还有一些动画是需要页面滚动到那个元素才要展示的。
用户7293182
2022/01/20
5.8K0
页面滚动,元素跳动;附带jquery.scrollex.js插件
滚动页面
除了接受正负偏移量,window.scrollBy还能接受ScrollToOptions作为配置。
公众号@魔术师卡颂
2020/08/26
2.7K0
html滚动条使用,以及页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
2,页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
全栈程序员站长
2022/08/05
5K0
html滚动条使用,以及页面有多个div块,如何让body页面不使用滚动条,只在某个div内使用滚动条
setInerval实现图片滚动离开页面后又返回页面时图片加速滚动问题解决
由于在加载了图片滚动的页面之后,又去到了其他页面,但是定时器没有停止,而页面又没有显示在用户面前,当返回页面的时候,就会把之前定时器中已经移动的图片动画一股脑移动,就会出现如题所述加速滚动的效果。
蓓蕾心晴
2020/03/19
1.2K0
使用 fartscroll.js 让你的网页在滚动时放屁
放屁绝对不是一个很高雅的行为,但是如果你比较喜欢恶搞,或者在愚人节,或者是一些比较特殊的网页设计中,可以通过 fartscroll.js 这个插件让你的网页在滚动的过程中 放屁。
Denis
2023/04/15
9880
视频流媒体平台EasyNVR使用iframe集成到页面时如何去除页面的滚动条?
使用过我们的流媒体服务器的都知道,我们的服务器支持集成到自己的项目平台上,因此不少使用我们流媒体服务器的用户,都实现了将直播视频流集成到自己的平台。
EasyNVR
2020/06/08
1.3K0
视频流媒体平台EasyNVR使用iframe集成到页面时如何去除页面的滚动条?
页面滚动事件
HTML DOM事件大全:https://www.runoob.com/jsref/dom-obj-event.html
阿超
2022/08/17
2K0
jquery 列表可拖动排序 sortable
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>jQuery UI Sortable</title> <style type="text/css"> #myList{ width: 80px; background: #EEE; padding: 5px; list-style: none; } #myList a{ text-decoration: none; color: #0077B0; } #myList a:hover{ text-decoration: underline; } #myList .qlink{ font-size: 12px; color: #666; margin-left: 10px; } </style> </head> <body> <ul id="myList"> <li><a href="#">心情</a></li> <li> <a href="#">相册</a> <a href="#" class="qlink">上传</a> </li> <li> <a href="#">日志</a> <a href="#" class="qlink">发表</a> </li> <li><a href="#">投票</a></li> <li><a href="#">分享</a></li> <li><a href="#">群组</a></li> </ul>
用户5760343
2019/10/10
2.5K0
jquery 列表可拖动排序 sortable
duilib 滚动条不能拖动 问题处理
遇到过很多次群里朋友问:为什么滚动条不能拖动,点击两端的按钮可以滚动,通过鼠标滚轮也可以滚动,就是鼠标拖动时拖不动? 这是个提问次数较高的问题。 下面的内容只针对可能的原因中的一个,也是最可能的原因。 因为通过鼠标拖动滚动条,实际内部用到了定时器,具体有兴趣的可以查看duilib的源码。我们的程序在处理时常常也会用到WM_TIMER消息,通过拦截WM_TIMER消息来做一些定时器处理,不能拖动的原因很有可能就是我们拦截了定时器消息之后,不管触发这个消息的定时器ID是多少,我们统统都不再继续传递给duilib
大菊观
2018/05/24
1.5K0
vue页面采用原生方式拖动
主要的难点是怎么获取要拖动的元素,e.target是获取的目标元素,可以采用while循环
tianyawhl
2021/10/09
6120
liMarquee – jQuery无缝滚动插件
liMarquee 是一款基于 jQuery 的无缝滚动插件,类似于 HTML 的 marquee 标签,但比 marquee 更强大。它可以应用于任何 Web 元素,包括文字、图像、表格、表单等元素,同时它可以设置不同的滚动方向(左右上下)、滚动速度、鼠标悬停暂停、鼠标拖动、加载 xml 文件等等。
kirin
2021/01/29
9.1K0
监听页面滚动结束
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <script type="text/javascript" src="https://cdn.bootcdn.net/ajax/libs/jquery/1.10.0/jquery.min.js"></script> </head> <body> <div style="height: 1000px;width: 10
用户10106350
2022/10/28
3.3K0
jquery横向滚动条
此代码献给wendy 由于工作太忙,下次再整理成插件调用,先记录下来,欢迎同学们提意见。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" conten
deepcc
2018/05/16
7.3K0

相似问题

Javascript (jQuery)在拖动项目时禁用页面滚动

20

如何在jquery中拖动draggable时禁用页面滚动?

31

在滚动可拖动项的内容时禁用jQuery拖动

30

在jquery中拖动+滚动

11

JQUERY UI可排序,开始拖动时页面从底部滚动

23
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档