重置类中的所有元素

时间:2012-10-11 05:20:18

标签: javascript reset

有没有办法将所有元素重置为默认值?

我试过这个,但没有发生任何事情

<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>

有什么建议吗?

4 个答案:

答案 0 :(得分:0)

javascript方法.reset()仅适用于<form>标记。如果您想要一种简单的方法来清除特定类的输入值或元素文本,可以使用jQuery

否则,对divspan等元素使用类似的内容:

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>