fed*_*o-t 0 html javascript modernizr
在我的应用程序中,我检查用户的浏览器是否支持HTML5并且能够在输入字段中显示占位符(使用Modernizr)。如果是这样,我想以labels自动化的方式从 HTML 文档中删除所有内容,但我真的不知道如何。
通俗地说,如果用户的浏览器支持占位符,我想把这个:
<label for="email">
Email:
</label>
<input type="email" id="email" placeholder="Your email">
Run Code Online (Sandbox Code Playgroud)
进入这个 - 在每次出现 - :
<input type="email" id="email" placeholder="Your email">
Run Code Online (Sandbox Code Playgroud)
我所拥有的是:
if (Modernizr.input.placeholder) {
// Remove all labels from the HTML document
}
Run Code Online (Sandbox Code Playgroud)
到目前为止,我将ids分配给标签并一个一个地删除它们,但我想要一种更有效的方法来做到这一点。
首先,建立一个现有标签的表格,如下所示:
var labels = {}, tags = document.getElementsByTagName('label'), l = tags.length, i;
for( i=0; i<l; i++) labels[tags[i].getAttribute("for")] = tags[i];
Run Code Online (Sandbox Code Playgroud)
接下来,找到具有占位符的输入元素。对于那些这样做并拥有 ID 的人,请查找并删除相关标签。
tags = document.getElementsByTagName('input');
l = tags.length;
var lb;
for( i=0; i<l; i++) {
if( !tags[i].getAttribute("placeholder")) continue;
if( lb = labels[tags[i].id]) lb.parentNode.removeChild(lb);
}
Run Code Online (Sandbox Code Playgroud)
完毕!不需要jQuery!!(因为实际上可以在原始 JS 中做一些事情......)
| 归档时间: |
|
| 查看次数: |
6244 次 |
| 最近记录: |