0

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

我试过这个但什么也没发生

<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

4 回答 4

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>
于 2012-10-11T05:43:03.297 回答
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属性来部分解决,但这并没有得到很好的支持。

innerHTMLouterHTML都不会恢复动态添加的侦听器,并且可能会或可能不会在某些浏览器中恢复原始默认值(但在其他浏览器中会)。

于 2012-10-11T05:43:19.967 回答
0

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

否则,对像这样的元素使用类似的东西divspan

c[b].innerHTML = "";
于 2012-10-11T05:28:39.280 回答
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>

​</p>

于 2012-10-11T06:14:29.200 回答