【发布时间】:2019-05-12 20:03:51
【问题描述】:
当我要求它删除 <p></p> 中的输入元素时,replace() 方法似乎不起作用。
<br> 等其他 HTML 元素将被单独删除。
var message = document.getElementById('message');
var firstname = document.getElementById('firstname');
var lastname = document.getElementById('lastname');
firstname.onclick = lastname.onclick = removeInput;
function removeInput() {
var id = this.id;
var paragraph = message.innerHTML;
var toRemove = "<input type='text' id='inp" + id + "'><br><br>";
var newParagraph = paragraph.replace(toRemove, '');
message.innerHTML = newParagraph;
}
<p id="message">
First name: <input type='text' id='inpfirstname'><br><br>
Last name: <input type='text' id='inplastname'><br><br>
</p>
First name: <input type="radio" name="name" id="firstname">
Last name: <input type="radio" name="name" id="lastname">
预期结果:删除所需的输入。
实际结果:没有删除任何内容。
【问题讨论】:
-
函数
removeInput没有变量作为输入,那么this.value指的是什么? -
this.value 给出按下的确切单选按钮的值。例如,如果按下“名字”单选按钮,this.value="firstname"。
-
所以你想删除输入元素并将信息传递给函数?在编写解决此问题的代码之前,让我们先有一个好的用例
-
@avdg 除了从段落中删除所需的输入元素之外,我不希望代码执行任何操作。你想让我解释一下我为什么要这样做吗?
-
只包含这个问题的用例(比如“我在输入名称时删除”)。无需添加更多内容。为了已经给出一个简短的答案,您可能想要编辑 dom 而不是使用 innerHtml 或向输入元素添加一些 css 样式。
标签: javascript replace