我知道 aria-label 和 aria-labelledby 之间的区别,但是下面这些之间有什么区别,以及何时使用其中一个?
// first
<label for="username-input">Username</label>
<input id="username-input" />
// second
<label id="username-label">Username</label>
<input aria-labelledby="username-label" />
Run Code Online (Sandbox Code Playgroud)
对于第一个,根据mdn文档
标签文本不仅在视觉上与其相应的文本输入相关联,而且在视觉上也与其相应的文本输入相关联。它也以编程方式与之关联。...您可以单击关联的标签来聚焦/激活输入以及输入本身。
但第二个不为浏览器用户提供该功能,因为它只是用于辅助功能的 ARIA 属性。
我还检查了 chrome devtools - accessiblity,我发现第一个和第二个的计算属性都显示输入和标签彼此关联。
因此,据我了解,第一个为用户提供了编程访问权限,但第二个没有,并且屏幕阅读器可以正确访问第一个和第二个。
第二个是第一个的子集吗?那么下面的代码是否无效模式,因为第一个是第二个的超集?
<label id="username-label" for="username-input">Username</label>
<input id="username-input" aria-labelledby="username-label" />
Run Code Online (Sandbox Code Playgroud)
谢谢。
char* str =
"\
a-a-a-a\
differing the text, because that was the lecture thing\
the text has been changed\
I know!\
the text has been changed\
";
Run Code Online (Sandbox Code Playgroud)
我深深地思考了几个小时,但无法弄清楚......只使用 stdio.h
string.h 是不允许的,但只使用基本的东西..
我怎样才能得到字符串长度?有人请帮助我。
目标是找到给定字符串中输入模式的频率
例如) ha => 2, di => 1..
帮我。
我读了说“除POST方法外,所有HTTP方法都是幂等”的文章。
我不明白那种解释。
我认为,“ PUT和DELETE两者都会更改服务器上的某些内容,因此反复调用它们不会产生相同的效果。”
那么,为什么将它们(PUT,DELETE)视为等幂的呢?
var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
}
document.write(arr[1]());
Run Code Online (Sandbox Code Playgroud)
输出是5,正如我预期的那样
但是当我在返回i之间添加i ++时; 和for循环的结束,如下面的代码,
var arr = [];
for(var i=0; i<5; i++){
arr[i] = function(){
return i;
};
i++;
}
document.write(arr[1]());
Run Code Online (Sandbox Code Playgroud)
屏幕显示错误,Uncaught TypeError:arr [1]不是函数
我预计输出应该是6,但我不明白为什么.