使用正则表达式删除所有HTML <button>元素

时间:2018-01-06 00:21:03

标签: javascript html regex

我每次按下按钮时都试图构建一个程序来运行一个函数,然后输出返回的值。为此,我使用以下HTML:

<h2>Test Results:</h2>
    <strong><span id='runs'>0</span> tests</strong><br>
    <div id='testResults'>
        <button id='test' onClick='this.parentNode.innerHTML = initiatePlanB()'>Begin</button>
    </div>

这是javascript:

var tests = document.getElementById('runs');
var inner = document.getElementById('testResults').innerHTML;
//Here's the part I can't figure out
var wo = inner.replace(??????, '');
var out = wo + '<br><strong>Test #' + String(Number(tests.innerText) + 1) + '</strong><br>';
tests.innerText = Number(tests.innerText) + 1;
//More stuff here
return out;

基本上,我需要一个正则表达式,或者其他一些可以删除任何html标签及其内容的函数。

1 个答案:

答案 0 :(得分:1)

为什么不使用getElementsByTagName('button')

找到所有按钮

然后将它们全部删除?

var testCount = 0;
var tests = document.getElementById('runs');
var inner = document.getElementById('testResults')

function initiatePlanB() {
  var buttons = inner.getElementsByTagName('button');
  if (buttons) {
    for (var i = 0; i < buttons.length; i++) {
      buttons[i].remove();
    }
  }

  testCount++;
  inner.insertAdjacentHTML('beforeend', '<br><strong>Test #' + testCount + '</strong><br>');

  tests.innerText = testCount;
  //More stuff here
}
<h2>Test Results:</h2>
<strong><span id='runs'>0</span> tests</strong><br>
<div id='testResults'>
  <button id='test' onClick='initiatePlanB()'>Begin</button>
</div>

虽然您可能只是隐藏按钮,或禁用它们。