有没有办法将所有元素重置为默认值?
我试过这个,但没有发生任何事情
<script>
c = document.getElementsByClassName('myall')
for( b=0; b<c.length; b++ )
{
c[b].reset();
}
<script>
<div class='myall'>
<span>something default</span>
<div>something default</div>
<p>something default</p>
</div>
有什么建议吗?
答案 0 :(得分:0)
javascript方法.reset()
仅适用于<form>
标记。如果您想要一种简单的方法来清除特定类的输入值或元素文本,可以使用jQuery。
否则,对div
,span
等元素使用类似的内容:
c[b].innerHTML = "";
答案 1 :(得分:0)
检查代码是否关闭代码。然后使用,
<script>
var c = document.getElementsByClassName('myall')
for( var b=0; b<c.length; b++ )
{
c[b].html(default_value);
}
</script>
<强> HTML 强>
<div class='myall'>
<span id="a">something default</span>
<div id="b">something default</div>
<p id="c">something default</p>
</div>
答案 2 :(得分:0)
要“重置”和元素,您需要记住其原始内容,然后在调用“重置”它时替换它,例如
var markupCache = {};
function modifyElement(id, newMarkup) {
var el = document.getElementById(id);
// Only store innerHTML the first time
if (!(el in markupCache)) {
markupCache[id] = document.getElementById(id).innerHTML;
}
el.innerHTML = markup;
}
function restoreElement(id) {
// Only restore markup if have cached some for this element
if (id in markupCache) {
document.getElementById(id).innerHTML = markupCache[id];
}
}
请注意,这不会重置元素自己的属性和属性,只会重置内部HTML。这可以通过使用outerHTML属性来部分修复,但这并不是很好的支持。
innerHTML 或 outerHTML 都不会恢复动态添加的侦听器,并且可能会或可能不会在某些浏览器中恢复原始默认值(但在其他浏览器中也是如此)。
答案 3 :(得分:0)
你可以用HTML5 data- *属性做这样的事情:
<div id='myall'>
<span data-default="something default">something default</span>
<div data-default="something default">something default</div>
<p data-default="something default">something default</p>
</div>
...
<script>
c = document.getElementById('myall').children;
for( b=0; b < c.length; b++ )
{
defaultValue = c[b].getAttribute('data-default');
if (defaultValue) {
c[b].innerText = defaultValue;
}
}
</script>